Получить приложение REST API php - PullRequest
0 голосов
/ 24 сентября 2018

Я действительно запутался в том, как получить почтовое вложение из Outlook REST API и показать его в виде ссылки для скачивания.Документация не является точной, и у меня есть несколько форумов, но ни один не может мне помочь с этим.Я использовал подход ООП, и это фрагмент моего кода, получающего вложение.

//
$getMessagesUrl = self::$outlookApiUrl."/Me/messages/".$message_id."/attachments/$attachment_id";

return self::makeApiCall($access_token, $user_email, "GET", $getMessagesUrl);

///
A get a response like this:

///

{

    "@odata.context": "https://outlook.office.com/api/v2.0/$metadata#Me/Messages('AAMkAGI2THVSAAA%3D')/Attachments/$entity",

    "@odata.type": "#Microsoft.OutlookServices.FileAttachment",

    "@odata.id": "https://outlook.office.com/api/v2.0/Users('ddfcd489-628b-40d7-b48b-57002df800e5@1717622f-1d94-4d0c-9d74-709fad664b77')/Messages('AAMkAGI2THVSAAA=')/Attachments('AAMkAGI2j4kShdM=')",

    "Id": "AAMkAGI2j4kShdM=",

    "LastModifiedDateTime": "2014-10-20T00:41:52Z",

    "Name": "minutes.docx",

    "ContentType": "application/vnd.openxmlformats-officedocument.wordprocessingml.document",

    "Size": 11585,

    "IsInline": false,

    "ContentId": null,

    "ContentLocation": null,

    "ContentBytes": "UEsDBBQABgAIAAAAIQDCAAA4KQAAAAA="
}
////

Моя проблема заключается в том, как получить фактический URL, чтобы я мог увидеть и загрузить файл.Любая помощь будет оценена.

1 Ответ

0 голосов
/ 25 сентября 2018

Я разобрался, как это сделать.Я использую PHP, и следующие шаги:

1-й: декодировать ContentBytes

$name=$attachment["Name"]; $decocedData = base64_decode($attach["ContentBytes"]);

2-й: создать файл и записать в него декодированные данные

$myfile = fopen("files/$name","w"); fwrite($myfile,$decocedData); fclose($myfile);

3-й: отображать URL-адрес как href

echo "<a href='files/$name' download>$name</a>";

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...