コミュ障だから明日が僕らをよんだって返事もろくにしなかった

何かを創る人に憧れたからブログをはじめたんだと思うよ

夏だからVBAやろうと思う

TalkAPIでも取得してみるの巻

先月、僕のブログで「VBA TalkAPI」の検索が引っかかったので今日は興味本位でVBAAPI呼び出すとかやってみようと思います。やはり読者の期待には応えないといけませんからね(大嘘)。そんなわけで "興味本位で" ちょっといじってみることにしました。

Talk APIについて
TalkAPI|PRODUCT|A3RT


実装方針
・まずは動くこと
・外部の便利なライブラリ的なやつは使わない
・エラーとかでても知らない

という雑な方針で動かしてみようかと思います。ライブラリ使わないのはVBAみたいなツールを使うところってみだりにツールをダウンロードできる環境じゃないかもしれないなーっていう配慮です。まあ、そういうのググるの面倒になったってだけでこれも嘘ですけどね。


んで、作った。

  Set talkapi = CreateObject("MSXML2.XMLHTTP")
  talkapi.Open "POST", "https://api.a3rt.recruit-tech.co.jp/talk/v1/smalltalk", False
  
  talkapi.setRequestHeader "Content-Type", "application/x-www-form-urlencoded"
' 実行例:おはよう
  talkapi.Send "apikey=YOUR_API_KEY&query=QUERY"
' Messageをゴリ押しで取得
  Debug.Print Replace(Mid(Split(talkapi.responseText, ":")(5), 3), """}]}", "")
  
  Set talkapi = Nothing

結果

\u304a\u306f\u3088\u3046\u3054\u3056\u3044\u307e\u3059

これでイミディエイトウィンドウに上の暗号が表示されます。API操作にしか興味がなかったのでとりあえずこれで……、僕はもう疲れたよ。VBAってユニコードエスケープなんとかしてくれる便利な機能って標準でないんですかね?ループを回して愚直に変換しているサイトしか見つかんないんだけど……。あとJSONパースしてくれる便利機能も……。