我们遇到了一个奇怪的问题(不一致),这似乎与Graph上的获取消息端点的$ filter功能有关。
我们通过他们的internetMessageId字段来查询消息。 这通常是可行的,但是在某些情况下,我们发现结果集为空(没有错误),奇怪的是,可以通过其主题或发件人的地址来提取同一封邮件。
此API调用返回空结果:
https://graph.microsoft.com/v1.0/users/<user_principal_name>/messages?$filter=sender/emailAddress/address eq '<sender_address>'
此API调用有效:
export default class CapaMagazine extends Component {
state = { capa: [this.props.capa.edicaoID] };
componentWillMount() {
Firebase.name
const db = firebase.firestore();
db.collection('revista_capa').get().then((result) => {
result.forEach((doc) => {
if (this.state, '==', doc.data().edicaoID) {
this.setState({ capa: doc.data() })
}
});
});
}
funcaoX(){
console.log(this.state);
}
render() {
return (
<Container>
<Content>
</Content>
</Container>
);
}
}
答案 0 :(得分:0)
我们对此进行了调查,这里的问题是应用程序的行为,而不是服务。 如果URL查询参数是由应用程序按照HTTP编码规范正确编码的,则这两种查询都可以正常工作。
在第一个请求中,+
值中包含internetMessageId
个字符,应用在发送请求之前未对其进行编码;服务会将它们解码为空格,这就是查询返回空结果的原因。
查询字符串正确后,将按预期返回正确的结果。
我们建议应用始终对请求网址进行编码。