rango - outlook buscar por remitente
Captar mensajes filtrados por conversationId a través de la API de Office365 (1)
Tengo problemas para encontrar la forma de usar la api de office365 para buscar mensajes con una ID de conversationId
.
Digamos que mi conversationId es AAQkADlkOGJmMTFmLTc2NjMtMKL3My04ZDhkLTVmZWNjMzA1ODY0NAAQAB11Xh2opSpBiXifMEJjhow=
Haré una solicitud como
https://outlook.office.com/api/v1.0/me/Messages?$filter=ConversationId%20eq%20AAQkADlkOGJmMTFmLTc2NjMtMKL3My04ZDhkLTVmZWNjMzA1ODY0NAAQAB11Xh2opSpBiXifMEJjhow=
Esto da como resultado una respuesta de 400
como esta:
{
"error": {
"code": "RequestBroker-ParseUri",
"message": "Syntax error at position 98 in ''ConversationId eq AAQkADlkOGJmMTFmLTc2NjMtMKL3My04ZDhkLTVmZWNjMzA1ODY0NAAQAB11Xh2opSpBiXifMEJjhow=''."
}
}
AAQkADlkOGJmMTFmLTc2NjMtMKL3My04ZDhkLTVmZWNjMzA1ODY0NAAQAB11Xh2opSpBiXifMEJjhow%3D
otras cosas, como la URL que codifica la conversación AAQkADlkOGJmMTFmLTc2NjMtMKL3My04ZDhkLTVmZWNjMzA1ODY0NAAQAB11Xh2opSpBiXifMEJjhow%3D
para AAQkADlkOGJmMTFmLTc2NjMtMKL3My04ZDhkLTVmZWNjMzA1ODY0NAAQAB11Xh2opSpBiXifMEJjhow%3D
que da como resultado el mismo error.
También probé simplemente eliminando el =
que parece ser el personaje que está volviendo loco
https://outlook.office.com/api/v1.0/me/Messages?$filter=ConversationId%20eq%20AAQkADlkOGJmMTFmLTc2NjMtMKL3My04ZDhkLTVmZWNjMzA1ODY0NAAQAB11Xh2opSpBiXifMEJjhow
pero eso da como resultado el siguiente error
{
"error": {
"code": "RequestBroker-ParseUri",
"message": "Could not find a property named ''AAQkADlkOGJmMTFmLTc2NjMtMKL3My04ZDhkLTVmZWNjMzA1ODY0NAAQAB11Xh2opSpBiXifMEJjhow'' on type ''Microsoft.OutlookServices.Message''."
}
}
También he intentado jugar con el uso de mayúsculas de la URL y el uso de signos +
lugar de %20
para la cadena de filtro, pero siempre recibo 400 errores.
Sin embargo, puedo filtrar por otros campos. Por ejemplo
https://outlook.office.com/api/v1.0/me/Messages?$filter=IsRead%20eq%20true
devuelve los mensajes filtrados como era de esperar.
¿Alguna idea de lo que podría estar pasando con el filtro ConversationId
?
Debe ajustar el ConversationId
con comillas simples. Así es como formo mi pedido en C #
string finalUrl = "https://outlook.office.com/api/beta/me/Messages?$filter=" + HttpUtility.UrlEncode(string.Format("ConversationId eq ''{0}''", conversationId));