3

Google スプレッドシート* カスタム メニュー (以下のコードを参照) が、匿名ユーザー、つまり URL (共有へのリンク) からスプレッドシートに直接アクセスするユーザーには表示されないことに気付きました。最初に署名する必要があります。
※スプレッドシートは共有で、権限は「リンクを知っている人なら誰でも編集可能」です。

これは予想される動作ですか?
ユーザーが最初にサインインしなくてもカスタム メニューを利用できるようにするための回避策はありますか?

コード ( Googleから)**:

function myOnOpen() {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var menuEntries = [ {name: "Say Hi", functionName: "sayHi"},
                      {name: "Say Hello", functionName: "sayHello"} ];
  ss.addMenu("Tutorial", menuEntries);
}

function sayHi() {
  Browser.msgBox("Hi");
}

function sayHello() {
  Browser.msgBox("Hello");
}

** onOpen 関数は名前が myOnOpen に変更され、インストール可能なトリガーに関連付けられています。スプレッドシートの所有者のコンテキストで実行されることを確認しました。

ティア、

オリヴィエ

4

2 に答える 2

-1

Apps Script Custom Function Docsから。

権限とカスタム関数

カスタム関数は、現在のスプレッドシートからデータを読み取ることができ、SOAP、UrlFetch、Google 翻訳などの匿名サービスを呼び出すことができます。匿名サービスは、実行するためにユーザー資格情報を必要としないサービスです。

ただし、カスタム関数には、他の関数にはないいくつかの制限があります。たとえば、カスタム関数はサイレントに実行され、ユーザー固有のサービスへのアクセスは許可されません。ユーザー固有のサービスは、Google カレンダーなどの特定のユーザーに関連付けられているサービスです。ユーザー固有のサービスは、Google カレンダーなどのプライベート データにアクセスしたり、メールの送信などのタスクを実行するユーザーとして機能したりする場合があります。

そうは言っても、ユーザー資格情報が制限されているサービスを特定する方法がわかりません。

幸運を祈ります

ジェイコブ

于 2013-06-20T14:40:56.837 に答える