разрешение: предоставление

Пространство имен: microsoft.graph

Предоставьте пользователям доступ к ссылке, представленной разрешением.

Этот API доступен в следующих национальных облачных развертываниях.

Глобальная служба Правительство США L4 Правительство США L5 (DOD) Китай управляется 21Vianet

Разрешения

Выберите разрешение или разрешения, помеченные как наименее привилегированные для этого API. Используйте более привилегированное разрешение или разрешения только в том случае, если это требуется приложению. Дополнительные сведения о делегированных разрешениях и разрешениях приложений см. в разделе Типы разрешений. Дополнительные сведения об этих разрешениях см. в справочнике по разрешениям.

Тип разрешения Разрешения с наименьшими привилегиями Более высокие привилегированные разрешения
Делегированные (рабочая или учебная учетная запись) Files.ReadWrite Files.ReadWrite.All, Sites.ReadWrite.All
Делегированные (личная учетная запись Майкрософт) Не поддерживается. Не поддерживается.
Приложение Files.ReadWrite.All Sites.ReadWrite.All

HTTP-запрос

POST /shares/{encoded-sharing-url}/permission/grant

Параметры пути

Имя параметра Значение Описание
encoded-sharing-url string Обязательно. ПРАВИЛЬНО закодированный URL-адрес общего доступа.

Кодирование URL-адресов для общего доступа

Чтобы закодировать URL-адрес для общего доступа, используйте следующую логику:

  1. Для начала примените к URL-адресу кодировку base64.
  2. Преобразуйте результат из кодировки base64 в недополненный формат base64url, удалив символы = в конце значения и заменив / символом _, а + — символом -.)
  3. Добавьте u! в начало строки.

Пример кодирования URL-адреса на языке C#:

string sharingUrl = "https://onedrive.live.com/redir?resid=1231244193912!12&authKey=1201919!12921!1";
string base64Value = System.Convert.ToBase64String(System.Text.Encoding.UTF8.GetBytes(sharingUrl));
string encodedUrl = "u!" + base64Value.TrimEnd('=').Replace('/','_').Replace('+','-');

Заголовки запросов

Имя Описание
Авторизация Bearer {token}. Обязательно. Дополнительные сведения о проверке подлинности и авторизации.

Текст запроса

В тексте запроса предоставьте JSON-объект с указанными ниже параметрами.

{
  "recipients": [
    { "@odata.type": "microsoft.graph.driveRecipient" }
  ],
  "roles": [ "read | write"]
}
Параметр Тип Описание
recipients Collection(driveRecipient) Коллекция получателей, которые получат доступ.
roles Collection(String) Если ссылка является ссылкой "существующий доступ", указывает роли, которые будут предоставлены пользователям. В противном случае должен соответствовать роли ссылки.

Список доступных ролей см. в разделе Значения свойств ролей.

Отклик

В случае успешного выполнения этот метод возвращает код отклика 200 OK и коллекцию разрешений в тексте ответа.

Разрешение, представляющее обновленную ссылку, всегда будет возвращаться в результирующем наборе при успешном выполнении. Обновленную ссылку можно определить по наличию аспекта link, содержащего свойство "область". В некоторых случаях возможно, что обновленная ссылка имеет URL-адрес, отличный от исходной ссылки, и в этом случае следует использовать новый URL-адрес.

Дополнительные сведения о возвращении ошибок см. в статье Отклики с ошибками.

Пример

В этом примере пользователи john@contoso.com и ryan@external.com доступ к ссылке общего доступа предоставляются без изменения других существующих разрешений на ссылку.

Запрос

POST https://graph.microsoft.com/v1.0/shares/{encoded-sharing-url}/permission/grant
Content-type: application/json

{
  "recipients": [
    {
      "email": "john@contoso.com"
    },
    {
      "email": "ryan@external.com"
    }
  ],
  "roles": ["read"]
}

Отклик

HTTP/1.1 200 OK
Content-type: application/json

{
  "value": [
    {
      "hasPassword": false,
      "id": "5fab944a-47ec-48d0-a9b5-5178a926d00f",
      "link": {
        "preventsDownload": false,
        "scope": "users",
        "type": "view",
        "webUrl": "https://contoso.sharepoint.com/:t:/g/design/EZexPoDjW4dMtKFUfAl6BK4BvIUuss52hLYzihBfx-PD6Q"
      },
      "roles": [
        "read"
      ]
    }
  ]
}

Примечание. Объект отклика, показанный здесь, может быть сокращен для удобочитаемости.

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

  • Разрешения типа пользователя, представляющие получателей, которым был успешно предоставлен доступ. Их можно определить по наличию свойства grantedTo .
  • Разрешения типа ссылки, представляющие приглашения, которые необходимо отправить нераспознанным внешним пользователям, чтобы они получили доступ. Их можно определить по наличию аспекта приглашения . Эти записи будут содержать ссылку с URL-адресом приглашения, а коллекция grantedToIdentities будет указывать пользователей, которым должна быть отправлена ссылка.
HTTP/1.1 200 OK
Content-type: application/json

{
  "value": [
    {
      "hasPassword": false,
      "id": "00000000-0000-0000-0000-000000000000",
      "link": {
        "preventsDownload": false,
        "scope": "existingAccess",
        "type": "view",
        "webUrl": "https://contoso.sharepoint.com/teams/design/shareddocs/Document.docx"
      },
      "roles": [
        "read"
      ]
    },
    {
      "grantedTo": {
        "user": {
          "displayName": "John Smith",
          "email": "john@contoso.com",
          "id": "47aecee2-d061-4730-8ecb-4c61360441ae"
        }
      },
      "id": "aTowIy5mfG1lbWJlcnNoaXB8bGltaXRlZDJAa2xhbW9kYi5vbm1pY3Jvc29mdC5jb20",
      "roles": [
        "read"
      ]
    },
    {
      "grantedToIdentities": [
        {
          "user": {
            "email": "ryan@external.com"
          }
        }
      ],
      "invitation": {
        "signInRequired": true
      },
      "roles": [
        "read"
      ],
      "link": {
        "type": "view",
        "webUrl": "https://contoso.sharepoint.com/:t:/g/teams/design/EZexPoDjW4dMtKFUfAl6BK4Bw_F7gFH63O310A7lDtK0mQ"
      }
    }
  ]
}

Примечание. Объект отклика, показанный здесь, может быть сокращен для удобочитаемости.