Google Appsscript を介してテンプレート/ドキュメント生成を実装しました (少なくとも概念実証)。この GAPSS スクリプトを Web サービスとして公開し、GAE からサービスを呼び出すことができます。
これはすでに機能しているものです:
- ファイル ID (テンプレート) を受け取り、フィールド/値をパラメーターとしてマージする GAPPS スクリプト
- GAPPS スクリプトは、テンプレートを新しいファイル (=結果ファイル) にコピーし、マージを実行します (拡張された検索/置換の基本)。
- スクリプト Web サービスを公開する
- appengine から呼び出す
問題は、GAE アプリケーションが Google または Google Apps ユーザーを認証しており、テンプレートには、GAE がスクリプトを呼び出す代理のユーザーしかアクセスできないことです。結果のマージされたファイルも、特定のユーザーのドライブに書き戻す必要があります。そのため、スクリプトは GAE 認証済みユーザーとして認証された状態で実行する必要があります。
範囲があることを知っている
https://www.googleapis.com/auth/drive.scripts
これにより、Google のドライブにスクリプトをインストールできますか? または ?
主な質問は、ここでどの戦略に従うかです。
- スクリプトをいくつかのサービス アカウントが所有するようにしますか?
- 各アプリケーション ユーザーにスクリプトをコピーする必要がありますか (問題: バージョンを最新の状態に保つ、エンド ユーザーがスクリプトを変更できないようにするなど)。
- スクリプトを認証して、リクエストを行ったのと同じ GAE ユーザーとしてスクリプトを実行できますか? APIコンソールから「ブラウザアプリのキー」を使用している可能性がありますか?
- たぶん、クライアント側で呼び出しを行う必要があります (webapp から?) そして、その逆を行う必要があります.. GAS スクリプトは指示のために GAE を呼び出し、認証の問題は私の背中から離れています...しかし、テンプレートを GAS スクリプトにストリーミングする必要がありますか?
- または、 https://developers.google.com/accounts/docs/CrossClientAuthを見ている必要がありますか?これはこの場合に適用されますか?
- 考慮すべきもう 1 つのオプションは、AppsScript の UrlFetch/OAuthConfig ですが、これでは DocsList と DocumentService の利便性が失われます。
選択肢が多すぎます...最適な戦略は何ですか?