为 Docusign 刷新令牌配置 Power Automate/Power Apps 自定义连接器
Configuring Power Automate/Power Apps Custom Connector for Docusign Refresh Token
我的问题是如何在 Power Automate/Power 应用程序中配置自定义连接器以使用 Docusign 进行刷新令牌调用以保持访问令牌有效,避免用户在一天中必须登录几次。
我已经能够使用 Docusign (Oauth2) 制作用于用户身份验证的自定义连接器并发送信封进行签名等。因此,我对自定义连接器以及在 Power Automate 和 Power Apps 中使用这些连接器有很好的应用知识。
我已成功配置 Postman POST 请求 Docusign(演示站点)刷新访问令牌(新访问令牌和新刷新令牌)。我从 docusign 收到完整的 json 有效负载,如下所示:
{
"access_token": "eyJ0eXAiOiJNVCIsImFsZyI6IlJTMjU2Iiwia2lkIjoiNjgxODVmZjEtNGU1MS00Y2U5LWFmMWMtNjg5ODEyMjAzMzE3In0.AQoAAAABAAUABwAAMdMo6AjZSAgAAHH2NisJ2UgCAOid-3Oz8jJHsDvIUG5hRR8VAAEAAAAYAAEAAAAKAAAADQAkAAAAZjA5Y2U4NDQtM2U5Yy00NjEzLTkwNzctNGY5MmFhY2NjZTc4IgAkAAAAZjA5Y2U4NDQtM2U5Yy00NjEzLTkwNzctNGY5MmFhY2NjZTc4MAAACeRizwjZSDcAQQ4yjgnYb0mjVFoiOzvttQ.tJMn4eTF_3sJwUiCugaH-zv9pzu8GrOXOWq0bhvmhrF-WG3scES4KxTtDMd7hmuasap_S_YBAKH-CrFfzY55tJU7tS64TowkX8UJfBJRvdurUrFsJHz4kcIPFm-1XI48XSoJbNK0eb_-U5CG3WVySSZXP-998a0y0TYZtQERaFkJNv6qEsw3Iykl3sDHDFjG9BXK7OrlnK-fkT-wQHbu_IghgnNS_gMI_qXVCNyxE4EJdChfkkLUAjmKt2mNQYhLb7gV1XOwtHgrowyWRXAM1ViXrOuyo60yVatmfo6yKcO9A5Cd_qVSP3owIXAQthkb72nwRP8o6n2ClU2U8Dp-Gw",
"token_type": "Bearer",
"refresh_token": "eyJ0eXAiOiJNVCIsImFsZyI6IlJTMjU2Iiwia2lkIjoiNjgxODVmZjEtNGU1MS00Y2U5LWFmMWMtNjg5ODEyMjAzMzE3In0.AQoAAAABAAgABwAAMdMo6AjZSAgAALE3IXsg2UgCAOid-3Oz8jJHsDvIUG5hRR8VAAEAAAAYAAEAAAAKAAAADQAkAAAAZjA5Y2U4NDQtM2U5Yy00NjEzLTkwNzctNGY5MmFhY2NjZTc4IgAkAAAAZjA5Y2U4NDQtM2U5Yy00NjEzLTkwNzctNGY5MmFhY2NjZTc4MAAACeRizwjZSDcAQQ4yjgnYb0mjVFoiOzvttQ.c0aUX8xcLBtDN256v4pnkirdeprnygZoRl0-zfpE7qxO3BkHpma5ik0uZS_T5KY6TW89vZOk9TDxT-I20Gh8kgeaK4N7xxmmh772qRPUQo16vc9i4RAsKJxDv4B0f_prH9TWr2j83bxSs_JhlHXnvMdV6vV4hZr5_z640MvLe6L74lNUS8nSLKrUDor0TFlCgzqRLp4GZrDMdgRpZFIfOmshgvgAeLR4oDhLqIPN7Z0FT385B9-KH6yeI9gCt4Ddu2CV2cKbgnnd02XOrNuv1M-IwYjzQ7XMlDsrdL4u5Y9TKnZW2Nia02Xt_IENyZ_TKtAO0ZNEXMg4kMEZqaKypQ",
"expires_in": 28800}
我知道我可以在 8 小时内使用此负载中的新刷新令牌进行另一次刷新等
我现在想创建一个 Power Automate 流程到 运行 自定义连接器,每 8 小时请求相同的刷新令牌。 我已经进行了广泛的研究,但没有真的看到了任何选项(而且 Power Automate 只支持 Postman Collections V1 而不是 V2,所以这没有帮助)所以我不得不解决这个问题。
具体来说,当我对 Docusign 进行 POST REST API 调用时,这不是完整的 Oauth2 调用,因为我正在使用刷新令牌(刷新令牌未过期)。我在 Postman 示例中指出,我必须强制 session 授权作为集成密钥的 Base64 代码,该代码与以文本“Basic”为前缀的密钥连接,导致授权字符串如下:
Basic ZjA5Y2U4NBQtM2U5Yy00NjEzLTkwwzctNGY5MmFhY2Ninja4OmZjYmI3MzhjLTQ0ZWUtNDA3MS040dhiLTViNjEzNGFlMTc30A== (example only)
在 header 中与 Content-Type 一起使用它,在 header 中将接受和范围设置为 'extend' 并将 grant_type 设置为 refresh_token 和 refresh_token 到实际的令牌值导致正确的响应。
虽然 Oauth2 涉及使用集成密钥和密钥以及重定向的完全身份验证 URL,但刷新令牌不需要此。
迄今为止,我已尝试使用自定义连接器的 API 键方法并插入上面列出的授权字符串。它似乎接受了授权字符串,但是,我收到一条错误消息“invalid_grant”。
查看请求,显示如下:
{"Authorization": "Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIng1dCI6Im5PbzNaRHJPRFhFSzFqS1doWHNsSFJfS1hFZyIsImtpZCI6Im5PbzNaRHJPRFhFSzFqS1doWHNsSFJfS1hFZyJ9.eyJhdWQiOiJodHRwczovL2FwaWh1Yi5henVyZS5jb20iLCJpc3MiOiJodHRwczovL3N0cy53aW5kb3dzLm5ldC81ZDk1MjJmNi01NjZlLTQ1ZWMtYjFlNC01MjJmOTJiMDU0OTkvIiwiaWF0IjoxNjE5NTI4MTEwLCJuYmYiOjE2MTk1MjgxMTAsImV4cCI6MTYxOTUzMjAxMCwiYWNyIjoiMSIsImFpbyI6IkFVUUF1LzhUQUFBQWJld0ZsaGhET2grSkg3WlFpT1JXd0JoVkg0UXQwMDErWG9ldk45WXBVRHYrTXpIRDlrVUc3U1RqakRlcjl1Y0d2Y2Fvb2wvVURMcEVLakk1bE04bTZ3PT0iLCJhbXIiOlsicHdkIiwibWZhIl0sImFwcGlkIjoiNjIwNGMxZDEtNDcxMi00YzQ2LWE3ZDktM2VkNjNkOTkyNjgyIiwiYXBwaWRhY3IiOiIyIiwiZmFtaWx5X25hbWUiOiJCb3lsZSIsImdpdmVuX25hbWUiOiJSaWNraSIsImlwYWRkciI6IjUwLjgyLjE3Ni4xNjUiLCJuYW1lIjoiQm95bGUsIFJpY2tpIiwib2lkIjoiMGIwNTZiMTQtZGQwOS00ZDA2LTlmYmMtYmRkZTU0ZGZlNDExIiwib25wcmVtX3NpZCI6IlMtMS01LTIxLTM5Mzc2NjAxMDAtMjYyMDEwOTU1OS0yOTY1ODM5MjAxLTY1ODEzIiwicHVpZCI6IjEwMDMyMDAwNDBDMzZCNTYiLCJyaCI6IjAuQVNjQTlpS1ZYVzVXN0VXeDVGSXZrckJVbWRIQkJHSVNSMFpNcDlrLTFqMlpKb0luQUpJLiIsInNjcCI6InVzZXJfaW1wZXJzb25hdGlvbiIsInN1YiI6IlRhZzl5Y3RXLVlwY1NsMjU2bGFJS3EtU2RPYXhMSEpnMWtyVXhiSVhjNkUiLCJ0aWQiOiI1ZDk1MjJmNi01NjZlLTQ1ZWMtYjFlNC01MjJmOTJiMDU0OTkiLCJ1bmlxdWVfbmFtZSI6InJib3lsZUBjaGVuZWdhLmNvbSIsInVwbiI6InJib3lsZUBjaGVuZWdhLmNvbSIsInV0aSI6Ii1aUW1nMEZid2syT3gtQXRWVXNLQVEiLCJ2ZXIiOiIxLjAifQ.luRgs4pprJBM7YjB0W-nJJv-7E2zgxslxzwSR4TBsOLseTN5u7aQT5uadqwoXOKxPksgPIWWkgodsU5Cbfh_2wcM4-FaUa2pLmxLG7nemEbGnzbZ0eJLvRTyZCYDnbeOwAgreHNpNpeFWlOs6Jq79y7ibiyc3xMd2Uzaj0hbEli9mlF_z0MLRjZ5pke3uRlvecuyUz6TXxdCaVB_vbM9Ic7sYLny8cHh715J3SL0mprLmL3esaVaXY6qvq6SxIKQcU0vX9lMjZaK8jAAmJ2fpUrDMlgU8cP5hw1g3mIWvfiJoK8N7a42JxKCXE-WQK-bfmBzg-euH4JFOzv07w_ESw","Content-Type": "application/x-www-form-urlencoded","Accept":"application/json","Scope": "extended"}
请求的body如下:
{ "grant_type": "refresh_token", "refresh_token": "eyJ0eXAiOiJNVCIsImFsZyI6IlJTMjU2Iiwia2lkIjoiNjgxODVmZjEtNGU1MS00Y2U5LWFmMWMtNjg5ODEyMjAzMzE3In0.AQoAAAABAAgABwAA26qofAnZSAgAAFsPoQ8h2UgCAOid-3Oz8jJHsDvIUG5hRR8VAAEAAAAYAAEAAAAKAAAADQAkAAAAZjA5Y2U4NDQtM2U5Yy00NjEzLTkwNzctNGY5MmFhY2NjZTc4IgAkAAAAZjA5Y2U4NDQtM2U5Yy00NjEzLTkwNzctNGY5MmFhY2NjZTc4MAAACeRizwjZSDcAQQ4yjgnYb0mjVFoiOzvttQ.zbQWTuYN7Jf_3O5n4zLfZ7ykkELBlLwhmUI9pHEPiAsZKJH-RsEQLS4Wb3wP9ni6s9ErbdNGkdc6O6pVTxi4SNkljP3YDEUezMPK4PakMgprZ9an_1c2gIh4lqfLa532djL3s143OPuhtsQITZzyvy3hXYC3dyYFyYljjFLD4p9dC5CprU8Db0Tjx1iBhwNt-lh3C85m92xh6mUyETNCqDF_RoV4jeIJdwDNq7eX_u1TXONchVCV8O66DZZRvI9Ig0PXza7Dm0_neaJ5N5-l0TXsbeAGWu8IqwTGjVWRWjxzsT6IgxcXTynPci9HoNhS7bU4BnlRnuqMbCqAopInjA" }
它似乎在请求的 header 中包含了 prior/expired 访问令牌,而这并不是使用刷新令牌所必需的。我认为我的错误是由于自定义连接器未正确配置以进行此调用并包含不记名访问令牌而发生的。
基本身份验证不起作用,也似乎没有身份验证作为自定义连接器安全配置起作用。
我正在寻找有关如何在 Power 中正确配置自定义连接器的指导 Automate/Power 应用程序使用带有刷新令牌的授权代码和 Docusign 来获取新的访问令牌而无需用户登录一旦访问令牌过期。
谢谢。
我最终使用 Power Automate 中的 HTTP 步骤 POST 刷新请求,并使用新的访问令牌和刷新令牌将正文返回到 Power Automate,然后将其保存在安全 SP 列表中。它是 运行 的时间表,可以使应用程序的令牌保持最新状态。我发现自定义连接器存在问题,特别是当连接器使用 Oauth2 时,它将 'FAIL' 在用户令牌过期后建立连接,并且在再次使用自定义连接器时不会提示用户登录。
我的问题是如何在 Power Automate/Power 应用程序中配置自定义连接器以使用 Docusign 进行刷新令牌调用以保持访问令牌有效,避免用户在一天中必须登录几次。
我已经能够使用 Docusign (Oauth2) 制作用于用户身份验证的自定义连接器并发送信封进行签名等。因此,我对自定义连接器以及在 Power Automate 和 Power Apps 中使用这些连接器有很好的应用知识。
我已成功配置 Postman POST 请求 Docusign(演示站点)刷新访问令牌(新访问令牌和新刷新令牌)。我从 docusign 收到完整的 json 有效负载,如下所示:
{
"access_token": "eyJ0eXAiOiJNVCIsImFsZyI6IlJTMjU2Iiwia2lkIjoiNjgxODVmZjEtNGU1MS00Y2U5LWFmMWMtNjg5ODEyMjAzMzE3In0.AQoAAAABAAUABwAAMdMo6AjZSAgAAHH2NisJ2UgCAOid-3Oz8jJHsDvIUG5hRR8VAAEAAAAYAAEAAAAKAAAADQAkAAAAZjA5Y2U4NDQtM2U5Yy00NjEzLTkwNzctNGY5MmFhY2NjZTc4IgAkAAAAZjA5Y2U4NDQtM2U5Yy00NjEzLTkwNzctNGY5MmFhY2NjZTc4MAAACeRizwjZSDcAQQ4yjgnYb0mjVFoiOzvttQ.tJMn4eTF_3sJwUiCugaH-zv9pzu8GrOXOWq0bhvmhrF-WG3scES4KxTtDMd7hmuasap_S_YBAKH-CrFfzY55tJU7tS64TowkX8UJfBJRvdurUrFsJHz4kcIPFm-1XI48XSoJbNK0eb_-U5CG3WVySSZXP-998a0y0TYZtQERaFkJNv6qEsw3Iykl3sDHDFjG9BXK7OrlnK-fkT-wQHbu_IghgnNS_gMI_qXVCNyxE4EJdChfkkLUAjmKt2mNQYhLb7gV1XOwtHgrowyWRXAM1ViXrOuyo60yVatmfo6yKcO9A5Cd_qVSP3owIXAQthkb72nwRP8o6n2ClU2U8Dp-Gw",
"token_type": "Bearer",
"refresh_token": "eyJ0eXAiOiJNVCIsImFsZyI6IlJTMjU2Iiwia2lkIjoiNjgxODVmZjEtNGU1MS00Y2U5LWFmMWMtNjg5ODEyMjAzMzE3In0.AQoAAAABAAgABwAAMdMo6AjZSAgAALE3IXsg2UgCAOid-3Oz8jJHsDvIUG5hRR8VAAEAAAAYAAEAAAAKAAAADQAkAAAAZjA5Y2U4NDQtM2U5Yy00NjEzLTkwNzctNGY5MmFhY2NjZTc4IgAkAAAAZjA5Y2U4NDQtM2U5Yy00NjEzLTkwNzctNGY5MmFhY2NjZTc4MAAACeRizwjZSDcAQQ4yjgnYb0mjVFoiOzvttQ.c0aUX8xcLBtDN256v4pnkirdeprnygZoRl0-zfpE7qxO3BkHpma5ik0uZS_T5KY6TW89vZOk9TDxT-I20Gh8kgeaK4N7xxmmh772qRPUQo16vc9i4RAsKJxDv4B0f_prH9TWr2j83bxSs_JhlHXnvMdV6vV4hZr5_z640MvLe6L74lNUS8nSLKrUDor0TFlCgzqRLp4GZrDMdgRpZFIfOmshgvgAeLR4oDhLqIPN7Z0FT385B9-KH6yeI9gCt4Ddu2CV2cKbgnnd02XOrNuv1M-IwYjzQ7XMlDsrdL4u5Y9TKnZW2Nia02Xt_IENyZ_TKtAO0ZNEXMg4kMEZqaKypQ",
"expires_in": 28800}
我知道我可以在 8 小时内使用此负载中的新刷新令牌进行另一次刷新等
我现在想创建一个 Power Automate 流程到 运行 自定义连接器,每 8 小时请求相同的刷新令牌。 我已经进行了广泛的研究,但没有真的看到了任何选项(而且 Power Automate 只支持 Postman Collections V1 而不是 V2,所以这没有帮助)所以我不得不解决这个问题。
具体来说,当我对 Docusign 进行 POST REST API 调用时,这不是完整的 Oauth2 调用,因为我正在使用刷新令牌(刷新令牌未过期)。我在 Postman 示例中指出,我必须强制 session 授权作为集成密钥的 Base64 代码,该代码与以文本“Basic”为前缀的密钥连接,导致授权字符串如下:
Basic ZjA5Y2U4NBQtM2U5Yy00NjEzLTkwwzctNGY5MmFhY2Ninja4OmZjYmI3MzhjLTQ0ZWUtNDA3MS040dhiLTViNjEzNGFlMTc30A== (example only)
在 header 中与 Content-Type 一起使用它,在 header 中将接受和范围设置为 'extend' 并将 grant_type 设置为 refresh_token 和 refresh_token 到实际的令牌值导致正确的响应。
虽然 Oauth2 涉及使用集成密钥和密钥以及重定向的完全身份验证 URL,但刷新令牌不需要此。
迄今为止,我已尝试使用自定义连接器的 API 键方法并插入上面列出的授权字符串。它似乎接受了授权字符串,但是,我收到一条错误消息“invalid_grant”。
查看请求,显示如下:
{"Authorization": "Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIng1dCI6Im5PbzNaRHJPRFhFSzFqS1doWHNsSFJfS1hFZyIsImtpZCI6Im5PbzNaRHJPRFhFSzFqS1doWHNsSFJfS1hFZyJ9.eyJhdWQiOiJodHRwczovL2FwaWh1Yi5henVyZS5jb20iLCJpc3MiOiJodHRwczovL3N0cy53aW5kb3dzLm5ldC81ZDk1MjJmNi01NjZlLTQ1ZWMtYjFlNC01MjJmOTJiMDU0OTkvIiwiaWF0IjoxNjE5NTI4MTEwLCJuYmYiOjE2MTk1MjgxMTAsImV4cCI6MTYxOTUzMjAxMCwiYWNyIjoiMSIsImFpbyI6IkFVUUF1LzhUQUFBQWJld0ZsaGhET2grSkg3WlFpT1JXd0JoVkg0UXQwMDErWG9ldk45WXBVRHYrTXpIRDlrVUc3U1RqakRlcjl1Y0d2Y2Fvb2wvVURMcEVLakk1bE04bTZ3PT0iLCJhbXIiOlsicHdkIiwibWZhIl0sImFwcGlkIjoiNjIwNGMxZDEtNDcxMi00YzQ2LWE3ZDktM2VkNjNkOTkyNjgyIiwiYXBwaWRhY3IiOiIyIiwiZmFtaWx5X25hbWUiOiJCb3lsZSIsImdpdmVuX25hbWUiOiJSaWNraSIsImlwYWRkciI6IjUwLjgyLjE3Ni4xNjUiLCJuYW1lIjoiQm95bGUsIFJpY2tpIiwib2lkIjoiMGIwNTZiMTQtZGQwOS00ZDA2LTlmYmMtYmRkZTU0ZGZlNDExIiwib25wcmVtX3NpZCI6IlMtMS01LTIxLTM5Mzc2NjAxMDAtMjYyMDEwOTU1OS0yOTY1ODM5MjAxLTY1ODEzIiwicHVpZCI6IjEwMDMyMDAwNDBDMzZCNTYiLCJyaCI6IjAuQVNjQTlpS1ZYVzVXN0VXeDVGSXZrckJVbWRIQkJHSVNSMFpNcDlrLTFqMlpKb0luQUpJLiIsInNjcCI6InVzZXJfaW1wZXJzb25hdGlvbiIsInN1YiI6IlRhZzl5Y3RXLVlwY1NsMjU2bGFJS3EtU2RPYXhMSEpnMWtyVXhiSVhjNkUiLCJ0aWQiOiI1ZDk1MjJmNi01NjZlLTQ1ZWMtYjFlNC01MjJmOTJiMDU0OTkiLCJ1bmlxdWVfbmFtZSI6InJib3lsZUBjaGVuZWdhLmNvbSIsInVwbiI6InJib3lsZUBjaGVuZWdhLmNvbSIsInV0aSI6Ii1aUW1nMEZid2syT3gtQXRWVXNLQVEiLCJ2ZXIiOiIxLjAifQ.luRgs4pprJBM7YjB0W-nJJv-7E2zgxslxzwSR4TBsOLseTN5u7aQT5uadqwoXOKxPksgPIWWkgodsU5Cbfh_2wcM4-FaUa2pLmxLG7nemEbGnzbZ0eJLvRTyZCYDnbeOwAgreHNpNpeFWlOs6Jq79y7ibiyc3xMd2Uzaj0hbEli9mlF_z0MLRjZ5pke3uRlvecuyUz6TXxdCaVB_vbM9Ic7sYLny8cHh715J3SL0mprLmL3esaVaXY6qvq6SxIKQcU0vX9lMjZaK8jAAmJ2fpUrDMlgU8cP5hw1g3mIWvfiJoK8N7a42JxKCXE-WQK-bfmBzg-euH4JFOzv07w_ESw","Content-Type": "application/x-www-form-urlencoded","Accept":"application/json","Scope": "extended"}
请求的body如下:
{ "grant_type": "refresh_token", "refresh_token": "eyJ0eXAiOiJNVCIsImFsZyI6IlJTMjU2Iiwia2lkIjoiNjgxODVmZjEtNGU1MS00Y2U5LWFmMWMtNjg5ODEyMjAzMzE3In0.AQoAAAABAAgABwAA26qofAnZSAgAAFsPoQ8h2UgCAOid-3Oz8jJHsDvIUG5hRR8VAAEAAAAYAAEAAAAKAAAADQAkAAAAZjA5Y2U4NDQtM2U5Yy00NjEzLTkwNzctNGY5MmFhY2NjZTc4IgAkAAAAZjA5Y2U4NDQtM2U5Yy00NjEzLTkwNzctNGY5MmFhY2NjZTc4MAAACeRizwjZSDcAQQ4yjgnYb0mjVFoiOzvttQ.zbQWTuYN7Jf_3O5n4zLfZ7ykkELBlLwhmUI9pHEPiAsZKJH-RsEQLS4Wb3wP9ni6s9ErbdNGkdc6O6pVTxi4SNkljP3YDEUezMPK4PakMgprZ9an_1c2gIh4lqfLa532djL3s143OPuhtsQITZzyvy3hXYC3dyYFyYljjFLD4p9dC5CprU8Db0Tjx1iBhwNt-lh3C85m92xh6mUyETNCqDF_RoV4jeIJdwDNq7eX_u1TXONchVCV8O66DZZRvI9Ig0PXza7Dm0_neaJ5N5-l0TXsbeAGWu8IqwTGjVWRWjxzsT6IgxcXTynPci9HoNhS7bU4BnlRnuqMbCqAopInjA" }
它似乎在请求的 header 中包含了 prior/expired 访问令牌,而这并不是使用刷新令牌所必需的。我认为我的错误是由于自定义连接器未正确配置以进行此调用并包含不记名访问令牌而发生的。
基本身份验证不起作用,也似乎没有身份验证作为自定义连接器安全配置起作用。
我正在寻找有关如何在 Power 中正确配置自定义连接器的指导 Automate/Power 应用程序使用带有刷新令牌的授权代码和 Docusign 来获取新的访问令牌而无需用户登录一旦访问令牌过期。
谢谢。
我最终使用 Power Automate 中的 HTTP 步骤 POST 刷新请求,并使用新的访问令牌和刷新令牌将正文返回到 Power Automate,然后将其保存在安全 SP 列表中。它是 运行 的时间表,可以使应用程序的令牌保持最新状态。我发现自定义连接器存在问题,特别是当连接器使用 Oauth2 时,它将 'FAIL' 在用户令牌过期后建立连接,并且在再次使用自定义连接器时不会提示用户登录。