0

ビジュアライゼーションにアクセスする人々にスプレッドシートに直接権限を与えることなく、Google Chart API を使用して Google スプレッドシートをクエリできるように、一種のプロキシを作成しようとしています。

そのために、次のような呼び出しを置き換えたい

var query = new google.visualization.Query('http://spreadsheets.google.com/tq?key=THE_KEY');
query.send(handleQueryResponse);

私の Apps Script プロキシ (JSONP を使用) の呼び出しによって。

私は次のようにプロキシを書きました:(結果を関数にカプセル化するオプションを後で追加します-JSONP)

function doGet(e) {
  return ContentService
    .createTextOutput(
      UrlFetchApp
        .fetch("http://spreadsheets.google.com/tq?tq="+e.parameter.q+"&key="+e.parameter.key))
        .setMimeType(ContentService.MimeType.JSON);
}

応答を取得しようとすると、次のエラーが発生します。google.visualization.Query.setResponse({"version":"0.6","status":"error","errors":[{"reason":"user_not_authenticated","message":"User not signed in","detailed_message":"\u003ca target=\u0022_blank\u0022 href=\u0022https://spreadsheets.google.com/spreadsheet/\u0022\u003eSign in\u003c/a\u003e"}]});

ユーザーが認証されなかった場合のように。私のスクリプトは、スプレッドシートに対する権限を持つユーザーによって実行される Web アプリとして展開されているため、奇妙だと思います。一部を使用する必要があるOAuthと思いますが、その方法でクエリを認証する方法がわかりません。

私の質問は次のとおりです: Apps Script を使用してクエリを認証し、Web アプリとしてデプロイするときに定義したアクセス権でデータにアクセスする方法は?

4

1 に答える 1

1

urlfetch ドキュメントを参照してください。すべての oauth が欠落しています。あなたがやっている方法は、パブリックSSでのみ機能します。

于 2013-05-06T16:53:02.813 に答える