1

コンテナにバインドされたスクリプトが関連付けられたテンプレート ドキュメントがあります。スクリプトは認証を必要としません。Google ドキュメント UI にカスタム メニューを作成するだけです。

テンプレート ドキュメントは、私の GAE Web アプリによって所有されています。Web アプリを使用して新しいドキュメントを作成するには、次のプロセスを使用します。

  1. ウェブアプリのサービス アカウントでテンプレートのコピーを作成します。
  2. ドキュメントの media_body をユーザー提供のコンテンツで更新します。
  3. ユーザーをドキュメント所有者として設定する権限を挿入します。
  4. Web アプリ サービス アカウントに関連付けられているアクセス許可を削除して、ドキュメントを作成したユーザーだけがドキュメントを非公開にできるようにします。

このプロセスは、スクリプトでの onOpen() 関数の実行を除いて、期待どおりに機能します。スクリプトはドキュメントとともに正常にコピーされ、onOpen() は手動で (「スクリプト マネージャー」を使用して) 実行できますが、ドキュメントが開かれたときに自動的に実行されることはありません。手順 4 を削除すると問題は解決しますが、これによりドキュメントが「非公開ではなくなります」。

コピーされたプライベート ドキュメントで onOpen() が実行されないのはなぜですか?

4

1 に答える 1

0

これは、元の onOpen が元の所有者のアクセス許可で実行されるためです。そのユーザーをアクセス許可から削除すると、保存された資格情報を使用できなくなります。それを削除しないか、所有権を変更せずにユーザーと共有するだけです。また、作成されたすべてのシステム ファイルを所有することになるため、より詳細な制御が可能になります。

于 2013-10-09T23:55:18.190 に答える