Разрешения пользователей и приложений
Когда приложение запрашивает доступ к пользовательским ресурсам, таким как собрания, через REST API, оно использует токен доступа, связанный как с приложением, так и с пользователем, авторизовавшим приложение. Для API может потребоваться разрешение как приложения, так и пользователя. Когда разрешение возвращается с ошибкой user needs to have
, как показано ниже, это означает, что требуется разрешение пользователя.
In order to call this API endpoint, user needs to have [Meetings] permission \
for requested resource.
Есть три компонента для решения этой проблемы:
- Проверка разрешения пользователя
- Поиск отображаемого имени разрешения
- Добавление разрешения пользователю
<сильный>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 и убедитесь, что у пользователя есть это разрешение в его роли.
Портал онлайн-счетов находится по адресу:
После входа в систему используйте следующие инструкции, чтобы найти роль пользователя и убедиться, что у этой роли есть разрешение на доступ к приложению для собраний:
В пользовательском интерфейсе это будет выглядеть следующим образом:
![введите здесь описание изображения](https://i.stack.imgur.com/rIx9t.png)
person
Grokify
schedule
21.06.2018