あなたは正しいと思います user3550481. 私はあなたが上で説明したことを複製し、あなたが報告したことをテストするためにこのスプレッドシートを作成しました. これには、onOpen で表示される「マイ メニュー」メニューと、同じ機能に割り当てられたスクリプトを含むボタンがあります。共有が「リンクを知っている全員」または「公開」に設定されていても、違いはありませんでした。匿名でも誰でもアクセスできるWebアプリケーションとしてスクリプトを公開しようとしました-明らかにdoGet機能がないため、違いがあるとは思っていませんでした-そうではありませんでした。
匿名ユーザーとして、つまり Google アカウントにサインインしていない状態でテストしたところ、「マイ メニュー」メニューは表示されず、ボタンは機能していませんでした。
Google アカウントにサインインすると、どちらも機能しましたが、興味深いことに、変更履歴には結果が匿名として表示されます。
Issue Trackerに報告するよりも優れた解決策を誰かが提供しているかどうか、非常に興味があります。それまでの間、リンクをユーザーと共有するときはいつでも、適切に機能させるには Google アカウントにサインインする必要があることを説明することをお勧めします。これは結局のところ無料です。
スプレッドシートで使用されるスクリプト:
function onOpen() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var myMenu = [ {name: 'My Menu', functionName: 'myMenu'}];
ss.addMenu('My Menu', myMenu);
}
function myMenu() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sh = ss.getSheetByName('Sheet1');
var lr = sh.getLastRow()+1;
sh.getRange(lr, 1).setValue('Clicking My Menu worked!');
}