Как добавить файл с помощью addFileAttachmentAsync из OneDrive для бизнеса - PullRequest
0 голосов
/ 09 апреля 2019

Я хочу использовать метод Office.js / Outlook addFileAttachmentAsync, чтобы добавить файл из OneDrive в новое составленное почтовое сообщение. Этот файл предоставлен мне другим пользователем Office365. Если я использую интерфейс Onedrive для создания ссылки и добавления текста '& download = 1', все это работает как шарм.

Если я использую Graph createLink для создания ссылки, мы получаем URI, и этот URI, похоже, работает, но выдает ошибку, как только загрузка будет завершена.

Как я могу сгенерировать URI с Graph, который работает?

Заранее спасибо за ваши усилия!

Wilco

URI ручной работы выглядит следующим образом:

https://softmakersbv -my.sharepoint.com /: я: / г / личный / tim_softmakers_nl / EWu4nf4kBMBKv4xrfGe91JABLpUSye9VgVJgxhlapA2eiQ е = 1KWtPD

и сгенерированный URI Графика выглядит следующим образом:

https://softmakersbv -my.sharepoint.com / личный / tim_softmakers_nl / Документы / TimDocuments-00003/2019/04 / 19.04.00188.png


Даже если мы убедимся, что ссылка общедоступна, мы не сможем использовать ее для addFileAttachmentAsync. Использование Graph Createlink со следующей командой:

https://graph.microsoft.com/v1.0/me/drive/items/01ATENY5KYPNW2NH64F5CJEWPK4DYIHSX7/createLink

со следующим телом {"type": "edit", "scope": "anonymous"} доставляет webUrl:

https://softmakersbv -my.sharepoint.com /: i: / g / personal / tim_softmakers_nl / EVh7baaf3C9Eklnq4PCDyv8BbjtwqSi-a92qYg0EYEE0kA

Если я использую интерфейс OneDrive для создания той же ссылки, результат будет следующим:

https://softmakersbv -my.sharepoint.com /: i: / g / personal / tim_softmakers_nl / EVh7baaf3C9Eklnq4PCDyv8BbjtwqSi-a92qYg0EYEE0kA? E = fCWoUK

Второй URL работает. Единственная разница - последняя часть? E = fCWoUK. Как я могу получить необходимую последнюю часть из Graph?


Изображения результатов

Результат по маленькому URL (возвращается в виде графика): https://softmakersbv -my.sharepoint.com /: i: / g / personal / wilcotroost_softmakers_nl / EaNXPGdDsBBDo_uVZPK2c0EB6gHaA3ASNj5ly0QyzKG3053 * e5 * e5L5 * e5 * l5 * e5 * l5 * e5 * l5 * e5 * l5 * e5 * l0 * 5 * * 5 * * 5 * * * * * * * 2555

Результат более длинного URL (ручной работы):

https://softmakersbv -my.sharepoint.com /: i: / g / personal / wilcotroost_softmakers_nl / EUuTYN05rlNNpYn0IG7FMfkBnnCu6yUUdbj72YcsTc5Wow? E = 10WW5M5

Пример запрашиваемого кода

          let _fileName = 'Picos de Europa'

          // graph url ..v1.0/me/drive/items/01ATENY5KYPNW2NH64F5CJEWPK4DYIHSX7/createLink  {"type": "edit", "scope": "anonymous"}
          //let _fileUrl = 'https://softmakersbv-my.sharepoint.com/:i:/g/personal/tim_softmakers_nl/EVh7baaf3C9Eklnq4PCDyv8BbjtwqSi-a92qYg0EYEE0kA' 

          // handmade url (create link from the onedrive interface)
          let _fileUrl = 'https://softmakersbv-my.sharepoint.com/:i:/g/personal/tim_softmakers_nl/EVh7baaf3C9Eklnq4PCDyv8BbjtwqSi-a92qYg0EYEE0kA?e=fCWoUK'            

          Office.context.mailbox.item.addFileAttachmentAsync(_fileUrl + '&download=1', _fileName, {}, (result) => {
            console.log(result)
          }) 

Работает только ссылка Url ручной работы. Моя проблема в том, что мне нравится создавать ссылку с помощью Graph API.

Ответы [ 2 ]

2 голосов
/ 12 апреля 2019

URI, который вы хотите использовать для addFileAttachmentAsync API, должен быть общедоступным.

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

В этом случае первый URI (с добавленным & download = 1) общедоступен, а второй - нет.

Пожалуйста, проверьте API своего графа, чтобы сгенерировать URI, который является общедоступным.

1 голос
/ 08 мая 2019

Решение этой проблемы оказалось более простым, чем предполагалось. Было ясно, что URL-адрес, предоставленный Graph API, не сработал. Команда надстроек Outlook прояснила это. Большой и оставшийся вопрос был; Как мне получить правильный URL-адрес от Graph.

Правильный ответ; вам не нужна такая функция, как createLink! Если вы просто используете идентификатор элемента файла OneDrive для получения свойств (например, https://graph.microsoft.com/v1.0//me/drive/items/01ATEIIBJLT455YK5FLISCBD37Y7SWE), вы найдете свойство @ microsoft.graph.downloadUrl, содержащее правильный URL-адрес. Этот URL-адрес действителен в течение часа. и может быть успешно использован с addFileAttachmentAsync в Office.js

Спасибо за то время, которое вы, люди, вложили в мой вопрос.

Wilco.

...