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));