0

関数の引数を使用してクエリを作成し、クエリを提供する BigQuery サービス (API キーを使用して有効化) を呼び出すカスタム関数を Apps Script で作成しました。しかし、スプレッドシートで関数を使用すると、常にサーバー エラーが返されました。

error: We're sorry, a server error occurred. Please wait a bit and try again.

これが私のコードです(手動で変数を指定してデバッガーで実行すると機能します):

function GetAge(first_name, last_name) {
  var select_text = "SELECT first_name, last_name, age FROM Testing.FullNames WHERE ";
  var filter_text = "first_name = '" + first_name + "' AND last_name= '" + last_name + "' ";
  var group_text = "GROUP BY 1,2;";
  var query_text = select_text + filter_text + group_text;

  var query = {'query': query_text};
  var response = BigQuery.Jobs.query('<My Project Id>', query);

  var value = response.getRows()[0].getF()[2].getV();

  return value;
}
4

3 に答える 3

1

v2 API は有効になっていますか? また、最初に実行しようとしたときに、OAuth フローを完了するように求められましたか?

注 - この初期エラーを解決したら、クエリ パラメータを変更する必要があります。クエリ呼び出しは、2 番目のパラメーターとして文字列を受け取るだけです。

var response = BigQuery.Jobs.query('project_id', query_text);
于 2012-06-01T17:20:02.643 に答える
1

現時点では、BigQuery サービス v2beta1 は Trusted Tester のサブセットに限定されています。代わりに v2 バージョン (文字列クエリを受け取る) を使用すると、動作するはずです。

于 2012-06-04T14:32:52.450 に答える
0

Google Apps Script から BigQuery API を呼び出す方法に関するチュートリアルがここにあります

于 2012-07-26T00:48:20.530 に答える