Я использую API приглашения из MS GRAPH - ССЫЛКА на приглашение
Отправить приглашение на совместное использование - Внешние пользователи
- POST / me / drive / items / {item-id} / seek
- POST / sites / {siteId} / drive / items / {itemId} / invite
Ответы на вышеуказанный запрос возвращают 200 OK код ответа и объект разрешение возвращаются, но ссылка общего доступа (webUrl) под объектом ссылки в большинстве случаев возвращает значение «null», из-за чего ссылка общего доступа не может быть предоставлена Внешнему пользователю для редактирования документа .
ЗАПРОСИТЬ ТЕЛО:
{
"recipients": [
{
"email": "abc@abc.com"
}
],
"message": "Here's the file that we're collaborating on.",
"requireSignIn": true,
"sendInvitation": false,
"roles": [ "write" ]
}
Здесь я не хочу делиться элементом через почту, поэтому сделаю sendInvitation ложным и использую webURL, полученный из ответа для сотрудничества.
Наблюдение: работает с учетной записью Gmail и Outlook. Для бизнес-аккаунтов он не работает, получая нулевой URL.
Примеры:
- Если я приглашаю в первый раз, я получаю ответ ниже:
Образец исключенного ответа:
</p>
<pre><code>{
"@odata.context": "https://graph.microsoft.com/v1.0/$metadata#Collection(permission)",
"value": [
{
"@odata.type": "#microsoft.graph.permission",
"roles": [
"write"
],
"grantedToIdentities": [
{
"user": {
"email": "#####@####.com"
}
}
],
"invitation": {
"signInRequired": true
},
"link": {
"type": "edit",
"webUrl": "https://**********encryptedURL*****/"
}
}
]
}
- Со второго раза ссылка объект не приходит в ответ ,
Пример ответа получен без webURL:
</p>
<pre><code>{
"@odata.context": "https://graph.microsoft.com/v1.0/$metadata#Collection(permission)",
"value": [
{
"@odata.type": "#microsoft.graph.permission",
"id": "###############",
"roles": [
"write"
],
"grantedTo": {
"user": {
"email": "######@######.com",
"id": "#############",
"displayName": "@@@@@@@"
}
}
}
]
}