Как загрузить вложения с помощью Microsoft Graph API? - PullRequest
0 голосов
/ 24 сентября 2018

Мне удалось получить сведения о почтовом ящике и вложениях с помощью Microsoft Graph API

Пример запроса

GET https://outlook.office.com/api/v2.0/me/messages/AAMkAGI2THVSAAA=/attachments?$select=Name

Образецответ

Код состояния: 200

{
    "@odata.context": "https://outlook.office.com/api/v2.0/$metadata#Me/Messages('AAMkAGI2THVSAAA%3D')/Attachments(Name)",
    "value": [
        {
            "@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=",
            "Name": "minutes.docx"
        }
    ]
}

Мне нужен сервис для загрузки вложений с помощью Microsoft Graph API.

1 Ответ

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

Согласно вашему описанию, я предполагаю, что вы хотите загрузить вложения с помощью MS Graph API.

На основании моего теста мы можем использовать следующие шаги для загрузки вложений.

Шаг 1, мы должны получить идентификатор вложения, используя следующие API:

GET /me/messages/{id}/attachments

GET /users/{id | userPrincipalName}/messages/{id}/attachments

Шаг 2, мы можем использовать следующий код для загрузки вложения.

Chilkat.StringBuilder sbSavePath = new Chilkat.StringBuilder();
Debug.WriteLine("name: " + json.StringOf("value[i].name"));
Debug.WriteLine("contentType: " + json.StringOf("value[i].contentType"));
int sizeInBytes = json.IntOf("value[i].size");
Debug.WriteLine("size: " + Convert.ToString(sizeInBytes));

//  Extract the data and save to a file.
sbSavePath.SetString("qa_output/");
sbSavePath.Append(json.StringOf("value[i].name"));

attachData.Clear();
attachData.AppendEncoded(json.StringOf("value[i].contentBytes"),"base64");
attachData.WriteFile(sbSavePath.GetAsString());

//  Get the last-modified date/time and set the output file's last-mod date/time..
lastMod.SetFromTimestamp(json.StringOf("value[i].lastModifiedDateTime"));
fac.SetLastModified(sbSavePath.GetAsString(),lastMod);

Для получения более подробной информации о простом коде мы можем обратиться к этому документу .

Если мы используем бета-версию API, и вложение являетсяонлайн-файл, мы также можем использовать свойство sourceUrl для загрузки вложения.

Вот закрытый вопрос о том, как загрузить вложение .Это может быть полезно для вас.

...