当我们在 Salesforce Marketing Cloud cloudpages 中实现 recaptcha enterprise 时,我们发现无法使用服务帐户进行 auth2.0 授权。我们需要使用 API KEY 方法吗?如果是,我们看到带有 API KEY 调用的文档仍然需要“注意:此 API 请求需要来自 Cloud SDK 的授权令牌,该令牌由 gcloud auth application-default print-access-token 命令生成。请确保已将 GOOGLE_APPLICATION_CREDENTIALS 环境变量设置为服务帐户私钥文件的路径。”我们如何使用 ssjs 或 javascript 代码生成 oauth 令牌来调用 api?
也许最重要的一点是:
- salesforce 营销云是否支持服务帐户授权(可能不支持)?
- 如果是,如何使用 ssjs 或 javascript 实现
- 如果没有,我们是否需要使用 api_key 进行身份验证?
- 如果使用 api_key 进行身份验证,是否需要身份验证令牌(oauth2.0),我们可以有一些示例代码来参考 ssjs 或 javascript 或 ampscript 吗?
我们用https://jwt.io/使用公钥和私钥生成令牌,但出现未授权错误。 智威汤逊 邮递员错误
答案1
Google Cloud CLI 有一个命令行选项,可以将范围添加到访问令牌。
我们如何使用 ssjs 或 javascript 代码生成 oauth 令牌来调用 API?
使用 Google Cloud Node.js SDK。auth 部分包含用于从服务帐户 JSON 密钥文件创建访问令牌的 API。SDK 有大量示例。
安全说明:请不是在浏览器中创建凭证。仅在您控制的服务器上创建凭证。在浏览器中,最终用户可以访问您的私钥,从而授予他们访问您帐户的权限。私钥不会过期。
关于 jwt.io 和 Postman 的注意事项。创建 Google OAuth 访问令牌分为两个步骤。首先,创建一个签名的 JWT,然后将签名的 JWT 交换为令牌。我不建议在网站上发布您的私钥,因为使用 jwt.io 签署您的 JWT 是必需的。