我正在构建一个需要使用 RingCentral API 的应用程序。它只是服务器(没有 UI),它需要能够发送 SMS 消息。我在服务器上存储了姓名和号码,不需要访问 RingCentral API 的任何其他功能。有什么方法可以获取 RingCentral 的普通 API 密钥(就像使用 Google API 时获得的那种),在这种情况下使用 OAuth 似乎有点麻烦。
2 回答
如果您使用的是私有 Server-only (No UI)
平台类型,它将使用Password flow
and Refresh Access Token
。
Password flow
类型应用程序使用 Oauth grant_type 作为密码,这在生成 access_token 时不那么繁琐且或多或少简单
您只需要在 Oauth 调用中传递以下标头https://platform.devtest.ringcentral.com/restapi/oauth/token:
"Accept":"application/json“
"Content-Type":"application/x-www-form-urlencoded“
"Authorization",:"Basic <ClientID:ClientSecret in base 64>
在正文中,我们需要通过以下方式传递参数:
username=<account phone number>&password=<account password>&extension=<your extension>&grant_type=password
这比您想象的容易且不那么麻烦。
如果您不需要生成 refresh_token 并希望通过 access_token 获得更简单的响应,您可以refresh_token_ttl=0
在 body 中传递参数。
RingCentral 中没有所谓的普通 API 密钥。您将始终拥有一个客户 ID 和密码
RingCentral 支持以下带有 API 文档链接的 OAuth 2.0 流程。
目前不支持静态 API 密钥。
仅私有应用程序(仅供您的组织使用)支持密码授予,因此如果您正在创建公共应用程序(供其他组织使用),您将需要使用授权代码或隐式授权流程。
RingCentral JavaScript SDK支持所有 3 个流程。其他 SDK支持授权码和密码授予。
由于您有一个私有Server-only (No UI)
应用程序,因此您可以通过使用不带刷新令牌的密码授予来减少身份验证过程的繁琐。这样,您可以在每个请求中传递密码,而不会生成太多刷新令牌,这可能会导致您的应用程序出现生产问题。为此,请执行以下操作:
- 使用密码授权
- 在 OAuth 令牌请求中设置
refresh_token_ttl
为-1
,因此不会生成刷新令牌