HSPでチャットワークAPIを利用してみよう~その1

ChatWork_Vt

今回もニッチすぎる感が否めないのですが、HSP(HotSoupProcessor)を使って、チャットワークAPIを利用してみようと思います。

スポンサーリンク

今回の主役たちを紹介

目的は上で説明したとおりなので、その為に使用するツール、主役たちを紹介したいと思います。

HSPとは

Hot Soup Processor(ホットスーププロセッサー)は、1995年からおにたまにより開発されているプログラミングツール、およびそのプログラミング言語である。略称はHSP。最新安定バージョンは3.4。

HSPはベーシックライクなプログラムでホント手軽にWindowsなどのアプリケーションが作成できるので、ちょっとした作業用のプログラムを作るのによく利用しています。

HSPホームページ

チャットワークとは

チャットワークは、業務の効率化と会社の成長を目的とした、メール・電話・会議に代わるコミュニケーションツールです。

チャットワークは業務での連絡、チーム内での伝達やファイル共有などで使っています。クラウドタイプなので、相手のオンオフに依存しないで利用できるのも便利なポイントですね。無料プランもあるので、気軽に試せるのもポイント。一度登録してみてはいかがでしょうか?

ChatWork

このふたつを上手く組み合わせて、データの取得とメッセージをHSPでやってみたいと思います。

準備しよう

HSPのダウンロードとセッティング

ここでは、3.4の安定版を使ってます。それ以外のバージョンでもたぶん大丈夫だとは思いますので、最新の安定版をダウンロードしてください。また、インストーラータイプでもアーカイブタイプでも問題ないと思います。

http://hsp.tv/make/downlist.html

チャットワークの登録とAPI申請

スクリーンショット 1

チャットワークはフリープランでもAPIは使えます。また、APIはプレビュー版として限定公開(2016年8月10日現在)となっているので、利用するには申請をする必要があります。申請をした後、APIが使えるようになるとメールでお知らせが届くので、チャットワークの動作設定からAPI発行を選んでトークンを取得しましょう。

チャットワークのAPIのエンドポイントの項目をみてみる

どういう風にリクエストすれば使えるのかをドキュメントで確認。認証方法や概要もここで確認ができます。

ChatWork | 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

と打ち込んで実行してみると
スクリーンショット 2

まあ、こんな感じでウインドウの生成、文字の表示など色々な手続きをすることなく、ベーシックライクで簡単につくることができます。いやー、ホントお手軽お手軽。とはいえ、全てをレクチャーしていくと本題に入れなくなってしまう可能性があるので、ここではチュートリアル的なものは省略して一気に進めますね。

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ファイルが出来上がっていると思います。それを開くと…

スクリーンショット 3

画像が出ていないのは、htmlファイルのみダウンロードしている状態なので、画像がローカル上にない為です。このスクリプトをベースにチャットワークのAPIを利用するプログラムに改造をしていきたいと思います。

今回はここまで

2回に分けることになってしまいましたが、次回はチャットワークAPIで自分のチャット一覧の取得、マイチャットへのメッセージ書き込み処理のスクリプト仕上げたいと思います。

スポンサーリンク

シェアする

  • このエントリーをはてなブックマークに追加

フォローする