F.Ko-Jiの「一秒後は未来」

Google Apps Scriptを外部から実行できるGoogle Apps Script Execution APIを試してみた

Google Apps Script を外部から実行できる「Google Apps Script Execution API」という API が公開されています。ただスクリプトを実行するだけの API ですが、この API を使えばわざわざスクリプトエディタを開かなくても Google Apps Script が実行できるようになって便利です。

詳しくは上記ドキュメントを読めば分かりますが、手順に漏れがあるとうまくいかないので簡単に手順をメモしておきます。試したサンプルコードは PHP のサンプルコードです。

まず事前準備ですが、通常の Google の API を利用する手順と同様です。

  • Google Developers Console にてプロジェクト作成。もしくは既存のプロジェクトを利用。
  • 「APIと認証」-「API」にて「Google Apps Script Execution API」を有効にする。
    google-apps-script-execution-api-01.jpg
  • 「APIと認証」-「認証情報」にて「OAuth 2.0 クライアント ID」を作成。作成するアプリケーションの種類は「その他」にする。

クライアント ID の作成のところで、作成するアプリケーションをウェブ アプリケーションにしてしまうと、アクセストークン取得のところで redirect_uri の指定がないというエラーになるので注意。

次に実行したい Google Apps Script をスクリプトエディタで開くか新規作成します。スクリプトが完成したら、「リソース」メニューにある「Developer Console プロジェクト」を選択します。

google-apps-script-execution-api-04.jpg

↑ 「Developer Console プロジェクト」を開く。

google-apps-script-execution-api-05.jpg

↑ 「プロジェクトを変更」から、最初に作成したプロジェクトの番号を指定して関連付けを変更します。(すでに関連付けられているプロジェクトに新たに OAuth 2.0 のクライアント ID を作成してもいいです。)

次にスクリプトエディタの「公開」メニューから「実行可能 API として導入」を選択し、自分だけアクセス可能な状態で公開します。

google-apps-script-execution-api-06.jpg

↑ これをやっておかないと外部実行できません。

(追記 2015-10-27) なお、スクリプトを編集したらその都度上記「実行可能 API として導入」を選択し、新たなバージョンを作成する必要があります。そうしなければ Execution API は常に以前のバージョンのスクリプトを実行し続けてしまうので注意が必要です。

あとは公式の PHP のサンプルコード通りにコードを作成して実行してみます。

  • すでに Composer でライブラリを導入済みだったら最新のものに更新しておきます。google/google-api-php-client のバージョン 1.1.5 以降が必要です。
  • サンプルコード内の CREDENTIALS_PATH は一度取得したアクセストークンを保存するファイルなので、事前に用意する必要はありません。
  • CLIENT_SECRET_PATH に指定されている client_secret.json は、Developers Console からダウンロードできます。
  • SCOPES に指定するスコープは、実行したい Google Apps Script をスクリプトエディタで開き、「ファイル」-「プロジェクトのプロパティ」に表示されているものを指定します。
    google-apps-script-execution-api-02.jpg
  • $scriptId に指定する値も同様にプロジェクトのプロパティから確認できる「プロジェクトキー」の値を指定します。「実行可能 API として導入」の操作をした際のダイアログにも表示されてます。
    google-apps-script-execution-api-03.jpg

ドキュメントの手順通りにやればうまくいきますが、色々と設定する項目が多いので注意が必要です。実際にいくつか手順の見落としがあってハマりました。

google-apps-script-execution-api-07.jpg

↑ こんな感じでコマンドラインから実行できました。

» Google Apps Script Execution API.

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

著者について

fkoji

F.Ko-Ji

Webエンジニアやってます。最近は ドットインストール の開発がお仕事です。その傍ら、個人で Meity電車遅延なう梅酒.in#グラドル自画撮り部 の部室といったネットサービスを開発・運営してます。梅酒と草野球とリアル脱出ゲームが好きです。

» 詳しいプロフィールや運営サービスの一覧など