【问题标题】:How to enable Zapier OAuth 2.0 Refresh Token Flow using RingCentral API如何使用 RingCentral API 启用 Zapier OAuth 2.0 刷新令牌流
【发布时间】:2021-05-25 06:54:16
【问题描述】:

我使用 Zapier 的内置 OAuth 2.0 实现和 RingCentral API 构建了一个 Zapier 集成。该集成适用于启动 OAuth 2.0 对话框、获取访问令牌和调用所需的 API。但是,令牌刷新不起作用,因此 1 小时后 API 返回未经授权的用户错误,并且用户需要再次登录。 1小时是相当长的时间,所以重新手动登录后调试很慢。

我找不到用于刷新令牌 API 流的 Zapier 日志记录,因此我无法判断它是否被调用,如果是,结果和错误消息是什么。

如何启用刷新令牌流程,有没有办法调试 Zapier 执行的刷新令牌工作流程?

以下是有关用于 OAuth 2.0 流程的 Zapier 的信息:

https://platform.zapier.com/docs/oauth#add-access-token-request-and-refresh-token-request-urls

以下是有关用于刷新令牌流的 RingCentral API 的信息:

https://developers.ringcentral.com/api-reference/Get-Token

这是 Zapier OAuth 2.0 刷新令牌请求 UI 与 RingCentral API 信息的样子:

【问题讨论】:

    标签: oauth-2.0 zapier ringcentral


    【解决方案1】:

    需要基本身份验证

    我找到了。默认 Zapier OAuth 实现中对 RingCentral API 的缺失要求是令牌刷新流程中的基本身份验证。 Zapier 包含初始授权代码流的基本身份验证 Authorization 标头,但不包含刷新令牌流。

    我最终预先计算了Authorization 标头字段,并使用“切换到代码模式”手动将其插入到刷新令牌流请求中,其中我添加了Authorization 标头,如下所示:

    const options = {
      url: 'https://platform.ringcentral.com/restapi/oauth/token',
      method: 'POST',
      headers: {
        'content-type': 'application/x-www-form-urlencoded',
        'accept': 'application/json',
        'Authorization': 'Basic <Base64EncodedClientIdAndClientSecret>'
      },
      params: {
    
      },
      body: {
        'refresh_token': bundle.authData.refresh_token,
        'grant_type': 'refresh_token'
      }
    }
    

    Base64 用于对以下内容进行编码:

    process.env.CLIENT_ID + ':' + process.env.CLIENT_SECRET
    

    起初,我将Authorization 设置为以下值,但收到了btoa 未定义的Zapier 错误。

    'Basic ' + btoa(process.env.CLIENT_ID+':'+process.env.CLIENT_SECRET)
    

    测试周期时间

    我能够通过将access_token_ttl 值硬编码为最小值600 秒(10 分钟)与默认的3600 秒(1 小时)来缩短测试刷新时间。

    Zapier 刷新令牌流日志

    我仍然无法找到 Zapier 刷新令牌流的 Zapier 日志。

    如果无法查看 Zapier 是否真的在发送令牌刷新请求,一种测试方法是将令牌刷新 URL 临时设置为诸如 RequestBin 之类的监控 URL。

    【讨论】:

      猜你喜欢
      • 2014-11-22
      • 2021-03-20
      • 2012-07-11
      • 1970-01-01
      • 2015-11-04
      • 2014-09-22
      • 2015-05-17
      • 1970-01-01
      • 2015-04-01
      相关资源
      最近更新 更多