2016-07-14 7 views
0

奇妙なことが起こっています。おそらく誰かがそれを説明したり、バグがあるかもしれません。私は、スプレッドシートにバインドされたAppsスクリプトから実行されるWebアプリケーションを作成しています。 openById()を使用してスプレッドシートを開くときにwebappが正常に実行されますが、getActiveSpreadsheet()では正常に実行されません。私はこのメッセージが表示されるページを読み込むと、 "TypeError:nullのメソッド" getSheetByName "を呼び出すことができません(行11、ファイル"コード ")"。スプレッドシートにバインドされていないように動作します。シートにバインドされたwebappでgetActiveSpreadsheetを使用して失敗しました

しかし、私が手動でdoGet()を実行すると、エラーは発生しません。データはログシートから正常に取得されます。ここに私のコードです...私は1行目をコメントアウトし、2行目のコメントを外すと完全に動作します。前もって感謝します。

function doGet() { 
     var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Log'); 
     // var sheet = SpreadsheetApp.openById('abc123def456').getSheetByName('Log'); 
     var data = sheet.getDataRange().getValues(); 
     var t = HtmlService.createTemplateFromFile('index'); 
     t.data = data; 
     var evaluatedTemplate = t.evaluate().setSandboxMode(HtmlService.SandboxMode.IFRAME); 
     return evaluatedTemplate; 
    } 
+0

うん、おそらく重複。私はそのスレッドに触発され、エンドユーザーによる追加の承認を必要としないような別の回避策を思いつきました。 – weathertinker

+0

それを答えで共有してください。 –

+0

気にしないでください。失敗した回避策 – weathertinker

答えて

0

「doGet()」機能を削除します。スクリプトがアドオンの場合、doGet()は必要ありません。代わりにonInstall、onOpenを使用し、HTMLサービスを使用してページを開きます。

あなたはGoogleの混合信号を送信しています。

バウンドスクリプトとWebアプリケーションが異なります。

https://developers.google.com/apps-script/guides/bound

関連する問題