我已经创建了一个应用程序读取会议列表,我得到下面虽然我已经设置权限为这个错误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"
}
- 参考: https://developer.ringcentral.com/api-docs/latest/index.html#!#RefMeetingsList.html
用户VS应用权限
当一个应用程序请求访问用户资源,如通过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"
]
}
}
- 参考: https://developer.ringcentral.com/api-docs/latest/index.html#!#RefCheckUserPermissions
2.查找权限的显示名称
为了这个权限添加到用户,有必要让这将增加通过在线帐户门户网站此权限(使用权限的显示名称https://service.ringcentral.com用于生产)。
您可以通过调用权限的字典端点哪里得到这个信息permissionId
是Meetings
,如下图所示。
GET /restapi/v1.0/dictionary/permission/{permissionId}
GET /restapi/v1.0/dictionary/permission/Meetings
响应将有一个displayName
属性,来指示“会议应用程序访问”在网上帐户入口的UI权限。
或者,也可以进行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":[
]
}
]
}
- 参考: https://developer.ringcentral.com/api-docs/latest/index.html#!#RefDictionaryPermissionList.html
3.添加权限用户
现在去RingCentral在线帐户门户网站,并确保用户在自己的角色此权限。
在线帐户入口是:
- 生产环境: https://service.ringcentral.com
- 沙盒环境: https://service.devtest.ringcentral.com
登录后,请使用以下说明找到用户的角色,并确保该角色具有“会议应用控制”权限:
- KB: 我如何建立用户角色和权限? 如何分配给用户一个特定的角色?
它看起来像在UI如下:
文章来源: RingCentral Meetings API Error - “user needs to have [Meetings] permission for requested resource”