0

アプリケーション「Google App Script」のヘルプが必要です。

私は自分のアプリケーションで DB として使用するスプレッドシートの所有者です。このスプレッドシートは非公開にする必要があります。

私のアプリケーションは Google サイトでガジェットとして実行されます。このアプリケーションでは、ユーザーは (所有者の ID ではなく) 自分自身としてスクリプトを実行します。

アプリケーションにアクセスするすべてのユーザーが DB スプレッドシートからデータを取得できるようにする必要があります。

スプレッドシートに私しかアクセスできない場合、ユーザーはどのようにしてこのデータを取得できますか?

oAuth を使用できますか?

下手な英語でごめんなさい

4

2 に答える 2

1

Zig の回答に続いて説明するために、このような contentService webapp の例を次に示します。ブラウザーまたは urlFetch でこの URL を使用して呼び出すことができます。

アプリは次のようにデプロイされます: execute as meで、誰でも匿名でもアクセスできます

ここに画像の説明を入力 https://script.google.com/macros/s/AKfycbxfk5YR-JIlhv7HG9R7F-cPxmL0NZRzrdGF4VFGxGivBkYeZY4/exec?&user=chris&row=4&sheet=Sheet1

ここにデモスクリプトがあります

function doGet(e) {
  if(e.parameter.user!='serge' && e.parameter.user!='chris' ){return ContentService.createTextOutput("logging error, you are not allowed to see this").setMimeType(ContentService.MimeType.TEXT)};
  var sheet = e.parameter.sheet;
  var row = Number(e.parameter.row);
  Logger.log(sheet+'  '+row);
  var ss = SpreadsheetApp.openById("0AnqSFd3iikE3dENnemR2LVFMTFM5bDczNGhfSG11LVE");// this sheet is private but anyone can call this app
  var sh = ss.getSheetByName(sheet);
  var range = sh.getRange(row,1,1,sh.getLastColumn());
  var val = Utilities.jsonStringify(range.getValues());
  var result = ContentService.createTextOutput(val).setMimeType(ContentService.MimeType.JSON);
  return result;  
}
于 2013-11-13T18:16:43.923 に答える
0

ユーザーに読み取り権限がないため、ガジェットから oauth を使用することはできません。ただし、2 番目のスクリプトを公開して、匿名のパブリック アクセスで実行される必要なデータを抽出し、最初から urlfetch を使用してそのスクリプトを呼び出すことができます。もっとゆっくり。

于 2013-11-13T17:47:22.507 に答える