Ошибка RingCentral Meetings API — пользователю необходимо иметь разрешение [Meetings] для запрошенного ресурса

Я создал приложение для чтения списка совещаний, и я получаю эту ошибку ниже, хотя я установил разрешение для Meetings.

API:

GET /restapi/v1.0/account/{accountId}/extension/{extensionId}/meeting

Ошибка:

{
  "errorCode":"CMN-408",
  "message":"In order to call this API endpoint, user needs to have [Meetings] permission for requested resource.",
  "errors":[
    {
      "errorCode":"CMN-408",
      "message":"In order to call this API endpoint, user needs to have [Meetings] permission for requested resource.",
      "permissionName":"Meetings"
    }
  ],
  "permissionName":"Meetings"
}

person Grokify    schedule 21.06.2018    source источник


Ответы (1)


Разрешения пользователей и приложений

Когда приложение запрашивает доступ к пользовательским ресурсам, таким как собрания, через REST API, оно использует токен доступа, связанный как с приложением, так и с пользователем, авторизовавшим приложение. Для API может потребоваться разрешение как приложения, так и пользователя. Когда разрешение возвращается с ошибкой user needs to have, как показано ниже, это означает, что требуется разрешение пользователя.

In order to call this API endpoint, user needs to have [Meetings] permission \
for requested resource.

Есть три компонента для решения этой проблемы:

  1. Проверка разрешения пользователя
  2. Поиск отображаемого имени разрешения
  3. Добавление разрешения пользователю

<сильный>1. Проверка разрешения пользователя

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

GET /restapi/v1.0/account/~/extension/~/authz-profile/check?permissionId=Meetings

Вы получите ответ, подобный следующему. Свойство successful будет отображать true или false в зависимости от того, есть ли у пользователя конкретное разрешение. Если вы видите эту ошибку, successful должно быть установлено на false.

{
  "uri":"https://platform.ringcentral.com/restapi/v1.0/account/11111111/extension/22222222/authz-profile/check?permissionId=Meetings&targetExtensionId=11111111",
  "successful":true,
  "details":{
    "permission":{
      "uri":"https://platform.ringcentral.com/restapi/v1.0/dictionary/permission/Meetings",
      "id":"Meetings",
      "assignable":true,
      "readOnly":false,
      "siteCompatible":"Independent"
    },
    "effectiveRole":{
      "uri":"https://platform.ringcentral.com/restapi/v1.0/dictionary/user-role/3",
      "id":"3"
    },
    "scopes":[
      "Self"
    ]
  }
}

<сильный>2. Поиск отображаемого имени разрешения

Чтобы добавить это разрешение пользователю, необходимо получить отображаемое имя разрешения, которое будет использоваться при добавлении этого разрешения через онлайн-портал учетных записей (https://service.ringcentral.com для производства).

Вы можете получить эту информацию, вызвав конечную точку словаря разрешения, где permissionId равно Meetings, как показано ниже.

GET /restapi/v1.0/dictionary/permission/{permissionId}
GET /restapi/v1.0/dictionary/permission/Meetings

Ответ будет иметь свойство displayName, указывающее, что доступ к приложению для собраний является разрешением пользовательского интерфейса на портале учетной записи в сети.

В качестве альтернативы вы можете сделать вызов API, чтобы получить список разрешений и найти здесь permissionId, который равен Meetings. В выдержке ответа ниже "displayName":"Meetings App Access" установлено для "id":"Meetings".

GET /restapi/v1.0/dictionary/permission

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

{
  "uri":"https://platform.ringcentral.com/restapi/v1.0/dictionary/permission?page=1&perPage=100",
  "records":[
    {
      "uri":"https://platform.ringcentral.com/restapi/v1.0/dictionary/permission/Meetings",
      "id":"Meetings",
      "displayName":"Meetings App Access",
      "assignable":true,
      "readOnly":false,
      "siteCompatible":"Independent",
      "category":{
        "uri":"https://platform.ringcentral.com/restapi/v1.0/dictionary/permission-category/Meetings",
        "id":"Meetings"
      },
      "includedPermissions":[

      ]
    }
  ]
}

<сильный>3. Добавление разрешения пользователю

Теперь перейдите на портал учетной записи RingCentral Online и убедитесь, что у пользователя есть это разрешение в его роли.

Портал онлайн-счетов находится по адресу:

После входа в систему используйте следующие инструкции, чтобы найти роль пользователя и убедиться, что у этой роли есть разрешение на доступ к приложению для собраний:

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

введите здесь описание изображения

person Grokify    schedule 21.06.2018