2017-12-28 25 views
0

私はSpreadsheetにいくつかのApps Script関数がバインドされています。GoogleスプレッドシートAPI v4のGoogleスプレッドシートアプリスクリプト関数を呼び出す

またGoogle Sheets API v4を使用してそのスプレッドシートとやり取りするAndroidクライアントもあります。

Apps ScriptコードでAndroidクライアントが一部の機能を呼び出して実行する方法はありますか?

Androidクライアントではなく、Apps Script側で実行するようにコードする必要があるのは、ドキュメントに何か問題が発生したときにメールを送信しているからです。 APIを介して認証されたAndroidユーザーからのものではなく、スプレッドシートの所有者アカウントからのものです。

私は、暗黙のうちにドキュメントに行を追加するなどの機能をトリガできることは知っていますが、特定の関数を直接実行する方法はありますか?

答えて

1

はい。 Google apps-scriptsにGET and POST requestsを作成できます。クライアントを含むREST型の呼び出しを行うことができるどこからでも。認証が必要な場合は、apps-script client libraries.私はあるapps-scriptから別のhereへのリクエストからの電子メール送信のための短いスクリプトを書いています。しかし、クライアントから電子メールスクリプトを呼び出した場合でもうまくいきます。

+0

おかげ:あなたのAndroidクライアントから

4)は、HTTPなどのURLで呼び出しを行います!誰でも自分の機能を起動できるようになります。私のGoogleスプレッドシートにアクセスできるユーザーだけがこの機能を起動できるようにする方法はありますか? – marmor

+0

カスタム認証トークンをミックスに含めることができます。それを要求のパラメータとして、または本文として追加します。要求がエンドポイントに到着したら、カスタム認証トークンがエンドポイントの変数に格納されているものと一致するかどうかを確認します。 –

+0

私はそれを確認します、ありがとう – marmor

1

のWebアプリとしてGoogle Apps Scriptのを展開>reference、あなたがのGet(e)のまたはポスト(電子)機能を実行し、条件とそれらの1の内側に他の機能を呼び出すことができます。この方法によって....

1

質問に対する回答が得られた可能性があります。念のためにあなたは、以下のいないあなたの開発を助けるかもしれないいくつかのポイントです:

1)は、通常のように、サーバサイドスクリプト(つまり、Google Appsのスクリプト)関数を作成します。

function myFunction(inputVar) { 
// do something 
return returnVar; 
} 

2)を作成しますdoGet(E)またはdoPostメソッド(e)は以下のような機能が - )1内の関数を使用してファイルと同じ.GSになります

function doGet(e) { 

    var returnVar = ""; 
    if (e.parameter.par1 != null) { 
     var inputVar = e.parameter.par1; 
     returnVar = myFunction(inputVar); 
    } 

    return HtmlService.createHtmlOutput(returnVar); 

} 

3)は、Webアプリケーションとしてプロジェクトを公開して展開します。展開されたURLに注意してください。 ?your_webapp_url PAR1 = "入力値"

関連する問題