创建数据工作室插件-如何使用oauth2“客户端凭据”

时间:2018-08-11 13:57:40

标签: google-apps-script google-data-studio

我正在尝试使用oauth2创建Data Studio插件-但是文档尚不清楚。

它说我们应该创建函数getOAuthService(),它没有说如何让用户获得他们自己在创建屏幕时输入的客户端ID和Secret,也不必说如果不需要使用所有功能就该怎么做。 Oauth2的建议字段。

例如,我可以使用邮递员以下列凭据获得令牌:

PostMan for Search Metrics

当我尝试使用客户端凭据时,我会收到一条错误消息,提示

  

脚本错误消息:授权基本URL是必需的。    脚本错误原因:USER    脚本错误stacktrace:     :45     validate_:42     :312     get3PAuthorizationUrls:143

很显然,这将不可能提供基本的auth URL-client_credential oauth2并不需要它。我该如何工作?

这是我正在使用的代码:

     function getOAuthService() {
  return OAuth2.createService('searchMetrics')
  .setTokenUrl('http://api.searchmetrics.com/v3/token')
  .setGrantType('client_credentials')
    .setClientId('****removed****')
    .setClientSecret('*****removed*****')
    .setPropertyStore(PropertiesService.getUserProperties())
    .setCallbackFunction('authCallback')
};

function get3PAuthorizationUrls() {
  return getOAuthService().getAuthorizationUrl();
}

1 个答案:

答案 0 :(得分:0)

遵循Data Studio开发人员网站上的Authentication and Authorization guide,以实现OAuth2。

一些重要说明:

  • OAuth2库setup guide将为您提供有关OAuth2.createService的详细信息。由于该文档可在图书馆的站点上找到,因此在Data Studio开发人员站点中也可以重复使用。
  • 获取客户端ID和密码的过程取决于您要连接到的提供程序。每种服务为此提供了自己的流程。
  • 在使用OAuth2.createService时,您可以(并且应该)传递授权库的URL。示例here以及here
  • 如果要查看OAuth2身份验证的示例实现,可以查看我们的开放源代码仓库中的示例代码:Github connectorMeetup connectorSpotify connector
  • 最后,在完成OAuth2流程后,您可以使用.getAccessToken()获取令牌。有关实现的详细信息,请参见上面的示例。

编辑:供将来的查看者使用:如果您使用client_credentials并假冒服务帐户,则可以使用authType: "NONE"并使用OAuth2库来生成令牌。