与$ filter / messages在图上不一致

时间:2019-02-12 23:47:26

标签: microsoft-graph microsoft-graph-sdks

我们遇到了一个奇怪的问题(不一致),这似乎与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> ); } }

1 个答案:

答案 0 :(得分:0)

我们对此进行了调查,这里的问题是应用程序的行为,而不是服务。 如果URL查询参数是由应用程序按照HTTP编码规范正确编码的,则这两种查询都可以正常工作。

在第一个请求中,+值中包含internetMessageId个字符,应用在发送请求之前未对其进行编码;服务会将它们解码为空格,这就是查询返回空结果的原因。

查询字符串正确后,将按预期返回正确的结果。

我们建议应用始终对请求网址进行编码。