サイトアイコン わんすけに聞いてみる

Google Apps Script APIでRESTfulAPI

WinActorの機能、RESTfulAPIライブラリを使ってみたい。

機能を使うことが目的だから、連携したいWebアプリケーションが元々ある訳じゃなかったんだけども。

自分でREST API実装させて好きに遊べそうなものないかいろいろ調べた。

そして、Google Apps Script(GAS)を見つける。

なんか、REST APIを自分で作ってスプレッドシートの更新とかできちゃうらしい。

WinActorのRESTfulAPIライブラリを使って、シナリオ実行ログをGoogleスプレッドシートに追記できたらめちゃかっこいいじゃん。

これができたら、タスクスケジューラで夜中にもWinActor動かしてインターネット経由で実行ログの確認できるじゃん。

 

1.Google Apps Scriptってなんだ。

Googleアカウントさえあれば使えるらしい。

Googleドライブを開いてみる。・・・ない。アプリ追加で接続できるらしい。

あった。Google Apps Script

これで、Googleドライブの「+新規」メニューからGoogle Apps Scriptのエディタが開けるようになった。

 

2.リファレンス見ながらスクリプトを書いてみる。

ふむ。ベースはJavascriptっぽいからライブラリだけ調べればなんとかなるのかな?

とりあえず、理屈ではこのコードでリクエスト受け取ってスプレッドシートに追記ができそうだ。

var shtID='{スプレッドシートのID}';

function appendLog(notice_time, message) {
  var sprSheet = SpreadsheetApp.openById(shtID);
  var sht = sprSheet.getSheetByName('LogInfo');
  sht.appendRow([notice_time, message]);
  return notice_time + ', ' + message;
}

function myFunction() {
  Logger.log(appendLog(new Date(), 'myFunction_TEST'));
}

{スプレッドシートのID}には、実際のIDを書き込む。

スプレッドシートを開いたときのURLの一部がスプレッドシートIDの様だ。

(例:https://docs.google.com/spreadsheets/d/ここがシートID/edit#gid=0)

API経由で実行したいのは「appendLog」だけども、「myFunction」を試しに実行してちゃんと動くかテストしてみる。(コレ大事。)

初回はなんか警告出るみたいだ。

[詳細]のところからオプションたどってアクセス許可を与える。

・・・ちゃんとスプレッドシートの更新は確認できた。

 

3.APIとして動かす為に公開する。

ふむ。なんかエラーでたぞ。

そらそーだよね。Google Cloud Platform(GCP)なんて使ったことないもの。

Google Cloud Platformの画面を開いて「APIとサービス」のメニューから新規のプロジェクトを作ってみた。

 

4.Google Cloud Platformにプロジェクトを作る。

さて、このPlatformにスクリプトを紐づける為には「プロジェクト番号」が必要らしい。

GCP側の、ここにあった。

赤くマスクしたとこにプロジェクト番号が書いてあった。コピーしてっと。

こんどは、Google Apps Script側から設定をする。

ここにプロジェクト番号でCloud Platformに紐づける設定する画面がある。

赤いとこにプロジェクト番号張り付けて「プロジェクトを設定」をクリックしたらエラーでた。

今度は「OAuth同意画面を設定する必要があります。」だって。

こちらのリンクから今度はOAuthの設定に入っていく訳か。

 

・・・

アプリケーション名いれてポチポチって、認証情報を作成ってやったらキーが生成されたぞ。

もう一回、Google Apps Scriptからプロジェクトの変更でプロジェクト番号を入れたら通った!

青く塗りつぶしたとこに紐付けたプロジェクト名が表示されました。

 

5.スクリプトを公開してみる。

もっかいここをぽちっと。

ふむふむ。公開範囲を指定できる訳ね。

テストだし、「自分のみ」で。

ふむ、API IDが表示されたぞ?・・・今回は使わないかな?

 

6.外部からスクリプトを実行できる様にAPIを有効化する。

Apps Scriptのエディタからだとポチっと簡単に実行できたけど、外部からの実行にはAPIの有効化が必要らしい。

Google Cloud Platformの「APIとサービス」のライブラリメニューから「Apps Script API」を有効化する。

そのまま、「認証情報」のメニューから認証情報の作成をクリックしてOAuth 2.0 クライアント IDを生成してっと。。。

 

ふぅ。。。

なんやかんや、scopeまわりで躓きまくってすごく時間かかったぜ。

だがこれで、なんとなくOAuth2.0  RESTfulAPIに対応したっぽいんだぜ。

モバイルバージョンを終了