Google Apps脚本:OAuthConfig to Big Query

时间:2014-04-09 18:57:55

标签: google-apps-script oauth-2.0 google-oauth google-bigquery google-adwords

我正在尝试运行一个将JSON数据加载到Big Query中的Google Apps脚本,并且遇到了问题。

我实际上是尝试在Adwords脚本中运行此功能,这与Google Apps脚本相同,只是它们没有可用的高级服务,比如大查询服务 - 所以我不能使用它。 / p>

他们有OauthConfig服务,您可以从AdWords发送POST数据,因此我可以通过这种方式发送数据,但我无法让OAuthConfig服务首先进行身份验证。

以下是我在Google App脚本中运行的内容:

var oAuthConfig = UrlFetchApp.addOAuthService("bigquery");
oAuthConfig.setAuthorizationUrl('https://accounts.google.com/o/oauth2/auth');
oAuthConfig.setAccessTokenUrl('https://accounts.google.com/o/oauth2/token');
oAuthConfig.setRequestTokenUrl('https://accounts.google.com/o/oauth2/token?scope=https://www.googleapis.com/auth/bigquery');
oAuthConfig.setConsumerSecret(ClientSecret);
oAuthConfig.setConsumerKey(ConsumerKey );

ConsumerKey和ConsumerSecret来自云控制台 - > API&验证 - >凭据,我为Web应用程序设置客户端ID。 ConsumerKey设置为客户端ID(something.apps.googleusercontent.com),ClientSecret是客户端密钥。为云控制台项目启用了Big Query API,我验证了我能够从其他来源上传数据。

当我尝试执行以下操作时,我不断收到身份验证错误:

var config = {
  'method':'post',
  'oAuthServiceName':'bigquery',
  'oAuthUseToken' : "always",
  'muteHttpExceptions':true
}

var result = UrlFetchApp.fetch('https://www.googleapis.com/upload/bigquery/v2/projects/'+projectName+'/jobs', config);
  

“无法对服务进行身份验证:bigquery”

我知道我应该在正文中将数据传递给它,但是现在我只是尝试使用该服务进行身份验证。

1 个答案:

答案 0 :(得分:0)

在Apps脚本中,oAuthConfig无法使用OAuth 2.0对API进行身份验证。您将需要构建和使用OAuth 2.0 Web应用程序流,如in this post所述。