c# - 将 JSON 数据发布到 Microsoft Graph API Azure 函数
问题描述
我正在尝试使用 Azure 函数使用其 ID 转发 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 对象?我觉得我已经尝试了可以在网上找到的每个示例,但我没有任何运气。
仅供参考,令牌已经附加到标题中,我只是没有显示那部分。
解决方案
您似乎正在对要发送的数据进行双重序列化。
首先当你手动序列化
...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);
//...
推荐阅读
- php - wordpress 在必要的更改后不断返回主域而不是子域
- symfony - 安全防火墙注销路径重定向到 http 而不是 https 协议
- symfony - symfony 4 - 表单选择后重定向
- android - 如何使用双簧管正确播放解码的内存 PCM?
- python - 无法创建循环以从网页中获取所有标题
- c# - 枚举从“a”到“zzz”的字母表
- python - 将 PyTorch 的张量形状从 (C, B, H) 更改为 (B, C*H)
- node.js - Google Cloud App Engine 上的 Nodejs 应用程序未启动
- angular - 如何在 Angular 6 导出功能中使用依赖注入
- c# - 将数学运算符存储在变量中