Apps脚本webapp:如何验证bigquery?

时间:2014-02-02 01:44:02

标签: authentication google-apps-script google-bigquery

我正在尝试将我的应用程序脚本webapp作为“用户访问webapp”执行,但它的bigquery应该像我一样运行,开发人员。 (如果我像我一样运行webapp,一切正常......)我查看了https://developers.google.com/bigquery/docs/authorization处的文档。没有应用程序脚本示例,所以我试着让javascript示例正常工作。

<html>
<head>
<script src="https://apis.google.com/js/client.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>
<script>

  function auth() {
    gapi.auth.authorize(config, function() {
        gapi.client.load('bigquery', 'v2');
        $('#client_initiated').html('BigQuery client authorized');
        $('#auth_button').fadeOut();
        $('#dataset_button').fadeIn();
    });
  }

  // User Submitted Variables
  var projectNumber = 'XXXXXXXXXX';
  var clientId = 'XXXXXXXXXX.apps.googleusercontent.com';

  var config = {
    'client_id': clientId,
    'scope': 'https://www.googleapis.com/auth/bigquery'
  };

  function listDatasets() {
    var request = gapi.client.bigquery.datasets.list({
      'projectId':projectNumber
    });
    request.execute(function(response) {
        $('#result_box').html(JSON.stringify(response.result.datasets, null));
    });
  }
</script>
</head>
<body>
<button id="auth_button" onclick="auth();">Authorize</button>
<div id="client_initiated"></div>
<button id="dataset_button" style="display:none;" onclick="listDatasets();">Show datasets</button>
<div id="result_box"></div>
</body>
</html>

我生成了一个客户端ID作为浏览器应用程序,其中https://script.google.com作为服务器地址。使用上面的代码,我收到此错误:无法读取未定义的属性'authorize_m___'。

我的问题有两个:1)应用程序脚本webapp是否会以与javascript应用程序进行身份验证相同的方式进行身份验证?即我可以使用该代码作为我的应用程序脚本的指南吗?

2)有关如何调试javascript示例代码的任何建议?请注意,我将此代码作为应用程序脚本webapp运行....这可能是一个错误....

1 个答案:

答案 0 :(得分:1)

答案......或解决方法的答案在这里给出:How to pass parameters from one Google-Apps-Script to another and execute?

我可以使用两阶段身份验证代替直接身份验证:用户以他/她自己的身份登录,我获取用户的名称以查找他们的文件,然后切换到使用BigQuery和execs的webapp,我是开发人员。

应用程序脚本下的高级服务身份验证的一种很好的解决方法....