メニュー

【ExtendScript】スクリプト情報を取得してスプレットシートに書き込む方法

eyecatch_ extendscript

スクリプト使用時にスクリプト名と使用者と使用時間をスプレットシートに記載する仕組みを作成してみました。

ただしソケット通信など使わず、バッチを使った力技なのであしからず。

海外でフリーランスをしているテクニカルアーティスト
ゲーム開発・映像制作・WEB制作等を請け負っています。
当ブログは作業効率化のための技術ブログです。

目次

データベースをスプレットシートで作成

スクリプト名と使用者と使用時間の3つの項目を記載しておきます。

GASの記述

ツール>スクリプトエディタからGASを開き下記のコードを記述します(※スプレットシートID)

コピペ後、公開>ウェブアプリケーションとして導入の認証をして発行されたURLを控えます。

引用

https://qiita.com/hirohiro77/items/a947416f803f45777338

doGet通知で値を取得する方法

発行されたURLの最後にパラメータをつけてやると、値を渡すことができます!

たとえば

“https://script.google.com/macros/s/発行されたID/exec?p1=スクリプト名.jsx&p2=使用者名&p3=使用日時”

をexec?のあとに記述してURLを開くと3つのパラメータが渡せます!

ESTKからバッチを経由してスクリプトに値を渡す方法

ということでExtendスクリプトから、なんとかパラメータをつけたURLへアクセスして値を渡せば、スプレットシートに記録が取れるはずです!!

はじめはソケット通信でアクセスできないか、がんばってみたのですがうまくいかないので、バッチ(bat+vbs)とcurlを使ってアクセスするようにしてみました

[card2 id=”5694″ target=”_blank”]

curlの導入

下記のURLからダウンロード。
https://curl.haxx.se/windows/

解凍して、下記のパスに格納しました。

C:\Program Files (x86)\curl-7.65.3-win64-mingw

[card2 id=”5697″ target=”_blank”]

スクリプト計測するExtendScript

  1. スクリプト名と使用者名と使用日時を取得して、発行されたURLの後ろに付けます
  2. ExtendScriptでCurlコマンドを使用してURLへアクセスするバッチを作成します。

  3. コマンドプロンプトを表示させたくないので、VBS経由で作成したバッチを実行します。

  • JSX

  • VBS

以上、実行するとスクリプト名と使用者名と使用日時が即座にスプレットシートに記載されます。

実際にスクリプトにつけて計測する

下記のようなイメージです。

  • JSX(実際に使用するスクリプト)
  • JSX(参照先)

最終的に、下記のような感じで記録されました!

残っている問題点

  • スクリプト名を日本語の場合、urlエンコードかけているのにも関わらずスクリプト名がちゃんと反映されない!

▶コピペでアクセスする分にはうまくいくのでバッチ処理が原因と思われる。(ちゃんと反映されればデコードして日本語名に戻せる)

▶解決しました。

バッチ処理でも「%」は「%%」と記述することでエスケープできるようです。

var webhookUrl = webhookUrl.replace( /%/g , "%%" ) ;   

事前にURLを置換することで、日本語名のスクリプト名も記述できるようになりました!

[追記]BridgeTalkで通信する場合

Bridgeの起動が必要ですが、下記のスクリプトを使用することでBridgeTalkだけで簡単に通信ができました!

Bridgeの環境設定をしておくとバックグラウンドで実行できるようになります。

ただしCurlを使うより通信に時間がかかります。

おまけ:ソケット通信でWEBからデータをダウンロードするスクリプト

スクリプトからWEBにあるデータをダウンロードしてみました。
ソフトのことはわかるもののソケット通信に関する知識は0でネットに転がっているコードを片っ端から試して勉強してみています。
下記のはちゃんと認証してhttpsでもちゃんと取得できるので、ここからとっかかりになりそうです。

http://chocolife.blog80.fc2.com/blog-entry-79.html

WEBからデータをダウンロードするスクリプト

http://chocolife.blog80.fc2.com/blog-entry-79.html
  

スクリプト情報を取得してスプレットシートに書き込む方法まとめ

ただ単にURLにアクセスするだけなのに、ソケット通信ができなくて

JSX▶BAT▶VBS▶CURLと渡って、ものすごく残念な形なのですが

とりあえず力技でスクリプト名と使用者名と使用日時を取得して、スプレットシートに書いてみました。

ソケット通信がうまくできたら、JSXだけで完結するので改良を目指します!

全記事一覧

  • URLをコピーしました!

Adobe ExtendScript Toolkitに関する参考記事・ツール・書籍のまとめ

ExtendScript Toolkitのオンライン学習

ExtendScript Toolkitのオンライン学習学習はコスパよく学習できるのでおすすめです。

Adobeソフト全般のソフトウェア購入

ExtendScript Toolkitを使うために、Adobe Creative Cloudを安く導入しましょう。

Adobe ExtendScript Toolkitの参考書籍

目次