ネットサービスとかGoogleとか豆知識とか。

F.Ko-Jiの「一秒後は未来」 > API (全 148 件)
2015年09月28日 18:16

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.

2015年06月12日 12:00

Twitterが7月にダイレクトメッセージの140文字制限を廃止

2015年04月08日 15:31

Twitterの引用ツイートはリツイート数にはカウントされないが相手に通知は届く

2015年03月21日 01:41

Twitter連携アプリの権限とやむを得ない事情について理解しておこう

2015年02月15日 00:56

VimeoのAPIを扱う際にはAcceptヘッダでバージョンを指定しておくとよい

2015年01月17日 22:16

Twitter連携アプリ作成時、アプリ名に「Twitter」を入れてもエラーにならない

2014年09月04日 15:19

#グラドル自画撮り部 の部室: 複数写真が添付されたツイートに対応しました

2014年05月09日 18:44

Twitter APIで任意のツイートをまとめて100個まで取得できるstatuses/lookupが便利

2014年05月07日 23:59

Twitter APIのConsumer KeyがAPI Keyに名前変わってた

2013年08月01日 22:43

サーバーサイドのGoogle+ログインで redirect_uri_mismatch のエラーにハマった

2013年04月05日 09:33

YouTubeのPlayer APIでHTML5プレイヤーかどうかを判別する方法

2013年03月30日 18:32

Twitter API v1の正式終了日が今度こそ決定した模様

2013年03月06日 03:44

Echofonのデスクトップ版は開発終了していてTwitter API 1.1には未対応なので終了です

2013年03月04日 13:51

DailyFeedでTwitterのフィードを取得しづらくなりますというお知らせ

2013年01月25日 20:51

TopsyのAPIの利用にAPIキーが必須に。1日あたりの利用上限も追加。

2012年12月07日 13:12

2013年2月からt.co短縮URLの文字数が2文字増える

2012年09月29日 16:59

FlickrとOAuth 1.0aで連携するWebアプリにwriteやdelete権限を与える方法

2012年09月11日 15:54

Twitter API v1.1におけるSearch APIのRate Limit

2012年09月06日 16:05

GoogleドキュメントのフォームからGoogle Apps ScriptでGitHubのIssuesに投稿する

2012年09月05日 14:41

OAuth認証でGitHub APIのアクセストークンを取得する