今回もニッチすぎる感が否めないのですが、HSP(HotSoupProcessor)を使って、チャットワークAPIを利用してみようと思います。
今回の主役たちを紹介
目的は上で説明したとおりなので、その為に使用するツール、主役たちを紹介したいと思います。
HSPとは
Hot Soup Processor(ホットスーププロセッサー)は、1995年からおにたまにより開発されているプログラミングツール、およびそのプログラミング言語である。略称はHSP。最新安定バージョンは3.4。
HSPはベーシックライクなプログラムでホント手軽にWindowsなどのアプリケーションが作成できるので、ちょっとした作業用のプログラムを作るのによく利用しています。
チャットワークとは
チャットワークは、業務の効率化と会社の成長を目的とした、メール・電話・会議に代わるコミュニケーションツールです。
チャットワークは業務での連絡、チーム内での伝達やファイル共有などで使っています。クラウドタイプなので、相手のオンオフに依存しないで利用できるのも便利なポイントですね。無料プランもあるので、気軽に試せるのもポイント。一度登録してみてはいかがでしょうか?
このふたつを上手く組み合わせて、データの取得とメッセージをHSPでやってみたいと思います。
準備しよう
HSPのダウンロードとセッティング
ここでは、3.4の安定版を使ってます。それ以外のバージョンでもたぶん大丈夫だとは思いますので、最新の安定版をダウンロードしてください。また、インストーラータイプでもアーカイブタイプでも問題ないと思います。
http://hsp.tv/make/downlist.html
チャットワークの登録とAPI申請
チャットワークはフリープランでもAPIは使えます。また、APIはプレビュー版として限定公開(2016年8月10日現在)となっているので、利用するには申請をする必要があります。申請をした後、APIが使えるようになるとメールでお知らせが届くので、チャットワークの動作設定からAPI発行を選んでトークンを取得しましょう。
チャットワークのAPIのエンドポイントの項目をみてみる
どういう風にリクエストすれば使えるのかをドキュメントで確認。認証方法や概要もここで確認ができます。
ここで必要になってくるのがエンドポイントの項目。以下、引用させていただきます。
チャットワークAPIはRESTの原則に基づいてAPI設計されています。RESTではチャット、タスクといったそれぞれのリソースに対して固有の一意なURIが与えられており(エンドポイントと呼ぶ)、そのエンドポイントに対してGETやPOST、PUT、DELETEといったHTTPメソッドでパラメータを送ることで投稿や削除などリソースの操作を行います。
つまり、HSPにて以下が出来れば、問題ないはず。
- エンドポイントのURIに接続する
- GET、POST、PUT、DELETEといったメソッドを定型どおりに送る
エンドポイントがhttpsなので、HSPでのリクエスト処理が微妙かもしれないなぁと思っていたところ
リソースの更新や削除にはPUTやDELETEメソッドを用いる必要がありますが、それらのメソッドに対応していないクライアントのため、URLのクエリストリングに ?method=PUT や ?method=DELETE と指定することで使用したいメソッドを明示することもできます。
ということなので、リクエスト文に?method=○○○をつけてあげれば何とかなりそう。たぶん、post処理もmethod指定でいけそうですね。
HSPで基本部分のプログラミング
例のやつです
手軽にwindowsのアプリケーションが作成できるHSP。プログラミング界(?)の基本中の基本、ハロ―ワールドもお手軽にできちゃいますよ。hsp用のエディタ(スクリプトエディタ)を立ち上げて
mes "Hello World!" stop
と打ち込んで実行してみると
まあ、こんな感じでウインドウの生成、文字の表示など色々な手続きをすることなく、ベーシックライクで簡単につくることができます。いやー、ホントお手軽お手軽。とはいえ、全てをレクチャーしていくと本題に入れなくなってしまう可能性があるので、ここではチュートリアル的なものは省略して一気に進めますね。
htmlダウンロードのスクリプトを書く
通信をする為には、hspinetをインクルードする必要があります。そして、netinitでネット接続の確認とエラー時の対応部分のスクリプトを記述します。
#include "hspinet.as" // ネット接続の確認 netinit if stat : dialog "ネット接続できません" : end
続けて簡単なホームページダウンロードのスクリプトを書いていきます。とはいえ、実際に書いたスクリプトを載せるのですが、ダウンロードできるのは404エラーのページなんですよね。。。
//baseURIの設定 URI = "https://www.google.co.jp/" //urlの設定 URL = "index.html" neturl URI netrequest URL
さらに、ダウンロード実行中のエラー判定、エラー時の処理、ダウンロード成功時のメッセージ表示をさせます。
*main //取得待ち確認 netexec res if res > 0 : goto *comp if res < 0 : goto *bad await 50 goto *main *bad //エラー neterror estr mes "ERROR "+estr stop *comp mes "DOWNLOAD 完了" stop
この辺りのスクリプトは、HSPをインストールした際に梱包されているsampleにほぼそのまんま(一部URLが違いますが)載っているので、それを流用させていただいてます。各種命令について簡単なsampleが載っていたりするので、それをそのままエディタで開いて実行して確認できちゃったりします。ホント便利。
ということで、ちょっと脱線しましたが、以上のスクリプトにてダウンロードに成功するとindex.htmlファイルが出来上がっていると思います。それを開くと…
画像が出ていないのは、htmlファイルのみダウンロードしている状態なので、画像がローカル上にない為です。このスクリプトをベースにチャットワークのAPIを利用するプログラムに改造をしていきたいと思います。
今回はここまで
2回に分けることになってしまいましたが、次回はチャットワークAPIで自分のチャット一覧の取得、マイチャットへのメッセージ書き込み処理のスクリプト仕上げたいと思います。