Опубликовать данные JSON в функции Microsoft Graph API Azure - PullRequest
0 голосов
/ 03 декабря 2018

Я пытаюсь использовать функцию 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.

Переменная данных IПрохожу в {"message":{"ToRecipients":[{"emailAddress":{"address":"<blah>"}}]}}.

Что я делаю не так?Как мне успешно опубликовать объект данных JSON?Я чувствую, что перепробовал каждый пример, который смог найти в Интернете, и мне не повезло.

К вашему сведению, токен уже прикреплен к заголовкам, я просто не показываю эту часть.

1 Ответ

0 голосов
/ 03 декабря 2018

Вы, кажется, дважды сериализуете данные для отправки.

Первый, когда вы вручную сериализуете

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

//...
...