1

私は、Google Classroom API呼び出しを行うコンテナバインドスクリプトを持つGoogleシートを持っています。私はスプレッドシートを、組織のすべての教師のためのテンプレートとして今追加しました。シートをコピーしてそれを使っています。Googleシートテンプレートのコンテナバインドスクリプトで使用可能なAPIを維持する

ただし、教師がテンプレートからコピーすると、Google Consoleに新しいプロジェクトが作成され、その新しいプロジェクトには有効なAPIはありません。彼らはデベロッパーコンソールに入って、Classroom APIを有効にする必要があります。

いいえ!これは私の仲間の教師のためのあまりにも面倒です!より良い方法が必要です。私は間違って何をしていますか?スクリプトでスプレッドシートのすべてのコピーに対してAPI呼び出しを有効にするにはどうすればよいですか?スクリプトを特定の方法で公開するか、プロジェクトを特別な方法で設定する必要がありますか?ここで正しいアプローチは何ですか?

このエラーは、コピーされたスプレッドシートでスクリプトを使用している場合に発生します。もちろん、元のテンプレートファイルで正常に動作します。

Google Classroom APIは、以前にproject project-id-xxxxxxxxxxxxxxxで使用されていなかったか、無効になっています。有効にするにはhttps://console.developers.google.com/apis/api/classroom.googleapis.com/overview?project=project-id-xxxxxxxxxxxxxxxxにアクセスして再試行してください。このAPIを最近有効にした場合、操作がシステムに伝播して再試行するまで数分間お待ちください。

答えて

2

シートアドオンとしてあなたのスクリプトを公開する必要があります。https://developers.google.com/apps-script/add-ons/

これはあなたに次のメリットがあります。

  1. (有効アドオン付き)スプレッドシートがコピーされたときに、手動で有効にする必要はありませんAPI、それらは有効なままです。
  2. アドオンのコードを更新すると、有効になっているすべてのスプレッドシートに対して自動的に更新されるため、変更を手動でコピーする必要はありません。
+0

あなたの答えは理にかなっています。しかし、それは私のために働いていない.... 私はアドオンを公開しました。 speadsheetでアドオンを有効にします。私はスプレッドシートのコピーを作る。私はスクリプトをアクティブにするためにイメージボタンをクリックします、それは許可を求めます、私はそれを許可します....そして、それを受け取ります "Google Classroom APIはプロジェクトproject-id-xxxxxxxxxxxxで使用されていません。 ... blah blah " アドオンのみを使用してテンプレートスプレッドシートをやり直す必要がありますか? –

+0

別のスプレッドシートを作成してアドオンを有効にした場合それは素晴らしい作品です!しかし、テンプレートとして使用しようとすると、このスプレッドシートのコピーにアドオンを有効にすることはできません。私はアドオンがスプレッドシートに結びつき、それをコピーしたい! –

+0

コピーするだけでなく、適切なテンプレートとして提出する必要があるかもしれないと思います。これは実際問題であるかもしれません。 –

関連する問題