您可以使用已连接应用,让您的 frappe 实例代表您访问其他网络服务。
此示例演示如何连接 Google Mail,但您可以使用任何支持 OAuth 2.0 的服务。
首先,创建一个新的已连接应用并为其命名。大多数服务提供商都会提供一个类似 /.well-known/openid-configuration 的 URL,用于发布所有 OAuth 端点。输入此 URL 并点击“获取 OpenID 配置”。
如果您不知道此 URL,请前往“端点”部分,手动输入授权 URI 和令牌 URI。授权 URI 是您将被重定向以授予同意的地方。令牌 URI 是系统可以用授权码换取访问令牌或刷新令牌的端点。请查阅特定集成或第三方服务的文档以获取正确的值。
现在,配置应该如下所示:
点击“保存”。现在您应该会看到一个名为重定向 URI 的新只读字段。请注意,其最后一部分特定于您的已连接应用。您需要向您的服务提供商(在此示例中为 Google)注册此重定向 URI。
复制重定向 URI,前往第三方服务并创建新的 OAuth 2.0 客户端凭据。您需要指定授权的 JavaScript 来源以及您刚刚复制的重定向 URI。将您的 frappe 实例的域名输入为授权的 JavaScript 来源。在生产服务器上,这可能是 https://erp.mycompany.com。对于本地开发,您可以使用类似 http://localhost:8000 的内容。
授权的 JavaScript 来源和授权的重定向 URI 必须正确,这一点至关重要。否则,您将无法连接。
将第三方服务的客户端 ID 和密钥复制到您的已连接应用并保存。
接下来,您需要定义您的系统需要访问的范围(scopes)。在此示例中,我们要连接到一个电子邮件收件箱,因此我们需要范围 https://mail.google.com/。对于其他用例,请查阅您的服务提供商文档中可用的范围。
最后,我们可以定义额外的参数。Google 文档说明我们需要参数 access_type=offline,以便我们的服务器可以在后台访问电子邮件收件箱,并在无需用户干预的情况下持续刷新访问令牌。如果我们不传递此参数,临时访问权限将很快过期,我们将需要反复登录。
现在,您和您的用户可以点击右上角的“连接到…”。这将打开一个新的浏览器选项卡,显示第三方服务的同意屏幕。之后,您将被重定向回您的 frappe 实例。
在后端,您的服务器将把重定向期间获得的代码兑换为临时访问令牌,并可选地兑换为刷新令牌。然后,这些令牌可用于代表您访问第三方服务。