我正在尝试运行一个将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”
我知道我应该在正文中将数据传递给它,但是现在我只是尝试使用该服务进行身份验证。
答案 0 :(得分:0)
在Apps脚本中,oAuthConfig无法使用OAuth 2.0对API进行身份验证。您将需要构建和使用OAuth 2.0 Web应用程序流,如in this post所述。