Публикувайте JSON данни към Microsoft Graph API Azure Function

Опитвам се да използвам функция на Azure, за да препратя имейл на Outlook, използвайки неговия идентификатор.

var url = "https://graph.microsoft.com/v1.0/users('<blah>')/messages/" + ID + "/forward";
var content = new StringContent(JsonConvert.SerializeObject(data), Encoding.UTF8, "application/json");
var response = await client.PostAsJsonAsync(url, content);
log.Info(response.Content.ReadAsStringAsync().Result);

Резултатът, който получавам е The value of the parameter 'ToRecipients' is empty. Specify 'ToRecipients' either in the message object or in the action.

Променливата за данни, която предавам, е {"message":{"ToRecipients":[{"emailAddress":{"address":"<blah>"}}]}}.

какво правя грешно Как да публикувам успешно JSON обект с данни? Имам чувството, че съм пробвал всеки пример, който мога да намеря онлайн, и не съм имал късмет.

FYI, токенът вече е прикачен към заглавките, просто не показвам тази част.


person cbrawl    schedule 03.12.2018    source източник


Отговори (1)


Изглежда, че сериализирате двойно данните за изпращане.

Първо, когато ръчно сериализирате

...JsonConvert.SerializeObject(data)...

и второ, когато се обадите на PostAsJsonAsync

client.PostAsJsonAsync(url, content);

което би сериализирало предоставения обект в JSON преди публикуване.

Ако се обадите на PostAsJsonAsync, няма нужда да създавате съдържанието ръчно

//...

var url = "https://graph.microsoft.com/v1.0/users('<blah>')/messages/" + ID + "/forward";
var response = await client.PostAsJsonAsync(url, data);
var result = await response.Content.ReadAsStringAsync();
log.Info(result);

//...
person Nkosi    schedule 03.12.2018