php - Microsoft 图表 - 无法向我的消息添加附件
问题描述
所以,今天我带着另一个微软 API 问题回到你身边,
我可以发送邮件,使用microsoft graph api没有任何问题,但是当我想添加附件时出现问题,我按照不同的文档,甚至发现有同样问题的人,但我一直收到同样的错误,这里是编码:
$b64Doc = chunk_split(base64_encode(file_get_contents($path)));
//send mail
$payload = [
'Message' => [
'subject' => $subject,
'body' => [
'contentType' => 'Html',
'content' => $body,
],
'toRecipients' => [
[
'emailAddress' => [
'address' => $email,
]
]
],
'attachments' => [
'@odata.type' => '#microsoft.graph.fileAttachment',
'Name' => 'file.pdf',
'ContentBytes' => $b64Doc,
'contentType' => 'application/pdf',
],
],
'saveToSentItems' => "false",
];
$microsoft_message = $graph->createRequest("POST", "/me/sendmail")
->attachBody($payload)
->execute();
这是我得到的错误:
{
"error": {
"code": "BadRequest",
"message":
"Property attachments in payload has a value that does not match schema.",
"innerError": {
"request-id": "c060b553-80f9-4f86-8784-291ff9be2082",
"date": "2018-04-26T09:15:03"
}
}
}
我尝试了多个大写/小写名称,因为文档说它是这样写的,但是人们让它使用不同的语法,有什么建议吗?谢谢!
解决方案
你需要另一套[]
围绕你的附件。该attachments
属性是一个对象数组。
'attachments' => [
[
'@odata.type' => '#microsoft.graph.fileAttachment',
'Name' => 'file.pdf',
'ContentBytes' => $b64Doc,
'contentType' => 'application/pdf',
]
],
推荐阅读
- java - jFrame中有多个帧?
- python - 在 MacOS 上为系统范围的 Python 安装 OpenCV
- aws-lambda - 如何将 Kinesis Video Stream 与 Kinesis Video Rekognition 集成以检测人员
- c# - 用 C# 替换空格
- python - 忽略路径字符串中的特定单词
- unity3d - Apk 文件在“构建和运行”之后去哪里?
- c# - 为什么 System.Net.Http.HttpMethod 是一个类,而不是一个结构?
- xml - 有没有一种简单的方法来表示 xsl 样式表中的引号?
- google-maps - 谷歌地图样式版本 - 即使在关闭可见性后,标签也有笔触效果
- typescript - 界面中的分隔符有什么区别?