1

Apps Script (Google Doc の機能を拡張するスクリプト) で Google Docs API を使用してスペルチェッカーを作成していますが、このサービスを Web アプリとしてダウンロードするユーザーが利用できるようにしたくありません。問題は、スクリプト エディタで (コンテナにバインドされた) スクリプトを作成すると、それを作成した Google ドキュメントでしか使用できないことです。つまり、新しいドキュメントを開くと、スクリプトを使用できません。

「Web アプリとしてデプロイ」し、誰でも利用できるようにし、指定された URL を貼り付けると、スクリプトには doGet() という関数が必要であるというエラー メッセージが表示されますが、これはスクリプトにはありません。

スクリプトを通常の Web アプリとして公開するにはどうすればよいですか?

4

2 に答える 2

2

次に、2 つのスクリプトを作成します。コア機能は Web アプリとしてデプロイされ、単純なコンテナーにバインドされたスクリプトは、Web アプリを呼び出すためのインターフェイスを提供します。

Web アプリはドキュメントにバインドされていないため、次のスキームに従うことができます。

function doGet(e){
    if(e.parameter.docId){
        doStuff(DocumentApp.openById(e.parameter.docId));
    }
}

アプリをデプロイすると、機能にアクセスできるリンクが表示されます。

コンテナーにバインドされたスクリプトから、適切なパラメーターを使用して Web アプリにリンクする UI (サイド パネルの Anchor 要素など) を追加できます。

ScriptApp.getService().getUrl() + "?docId=" + DocumentApp.getActiveDocument().getId()

またはUrlFetchAppを使用して結果を取得し、UI に表示します。

残念ながら、これはすべてのドキュメントに自動的に機能を追加することと同じではなく、完全なスクリプトではなく、機能を追加する各ドキュメントに比較的軽量のフックのみをインストールする方法です。私はそれを達成できる方法を知りません。ドキュメントのコピーを作成すると、そのコピーにはすべてのスクリプトが含まれるため、追加機能が必要なドキュメントのテンプレートを作成できることに注意してください。ただし、複数のスクリプトを組み合わせて一致させたい場合は、これがうまくいかないことがあります。

この方法の利点は、コア機能を変更すると、スクリプトを更新する必要なく、それを使用するすべてのドキュメントで変更がすぐに利用できることです。一方、コンテナ スクリプトが UI と頻繁にやり取りする必要がある場合は、複雑になり、2 つのスクリプトに分けることの有用性が低下する可能性があります。

于 2013-09-18T11:11:59.187 に答える