Отправка данных JSON в функцию Azure API Microsoft Graph

Я пытаюсь использовать функцию 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? Я чувствую, что перепробовал все примеры, которые смог найти в Интернете, и мне не повезло.

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


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