График Microsoft - не могу добавить вложения в мое сообщение - PullRequest
0 голосов
/ 26 апреля 2018

Итак, сегодня я возвращаюсь к вам с другой проблемой Microsoft API,

Я могу отправлять письма, без каких-либо проблем с API Microsoft Graph, но проблема возникает, когда я хочу добавить вложения, я следовал за другим документом, и даже находил людей с такими же проблемами, но я продолжаю получать то же самое ошибка, вот код:

$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"
    }
  }
}

Я пробовал использовать несколько заглавных и строчных букв, так как в doc написано, что оно написано так, но люди заставили его работать с другим синтаксисом, есть предложения? Спасибо!

1 Ответ

0 голосов
/ 02 мая 2018

Вам нужен еще один набор [] вокруг вашего вложения. Свойство attachments является массивом объектов.

'attachments' => [
    [
        '@odata.type' => '#microsoft.graph.fileAttachment',
        'Name' => 'file.pdf',
        'ContentBytes' => $b64Doc,
        'contentType' => 'application/pdf',
    ]
],
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...