我正在构建一个应用程序需要使用RingCentral API。它只是服务器(没有UI),它需要能够发送SMS消息。我在服务器上存储了名称和号码,不需要访问RingCentral API的任何其他功能。有没有办法为RingCentral获取正常的API密钥(就像使用Google API时那样),在这种情况下使用OAuth似乎有点麻烦。
答案 0 :(得分:0)
RingCentral支持以下OAuth 2.0流程,其中包含指向API文档的链接。
目前不支持静态API密钥。
仅私有应用程序支持密码授予(仅供贵组织使用),因此,如果要创建公共应用程序(供其他组织使用),则需要使用授权代码或隐式授权流程。 / p>
RingCentral JavaScript SDK支持所有3个流程。 Other SDKs支持授权码和密码授予。
由于您拥有私有Server-only (No UI)
应用,因此您可以通过使用密码授权而不刷新令牌来减少身份验证过程。这样,您可以在每个请求上传递密码,而不会生成太多的刷新令牌,这可能会增加您的应用程序的生产问题。为此,请执行以下操作:
refresh_token_ttl
设置为-1
,因此不会生成刷新令牌答案 1 :(得分:0)
如果您使用的是 private Server-only (No UI)
平台类型,它将使用Password flow
和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
参数。
RingCentral中没有所谓的普通API密钥。您将始终拥有客户端ID和机密