読者です 読者をやめる 読者になる 読者になる

anti scroll

ブラウザと小説の新しい関係を模索する

Ocaml で Twitter Bot を作る

プログラミング

せっかくTwitterに登録したのだから、縦書き文庫のホットエントリーを自動的にTwitterに流すことにしました。

Ocamlで作ったのですが、せっかくなので公開しておきます。

ocamlnetというライブラリのHttpClientモジュールを使っています。

let sm_update = "http://twitter.com/statuses/update.json"
;;

let post_msg ~uid ~pwd ~msg () =
  let req = new Http_client.post sm_update  [
    ("status", msg);
  ] in
  let header = req # request_header `Effective in
  let hash = Netencoding.Base64.encode (Printf.sprintf "%s:%s" uid pwd) in
  let () = header # set_fields [
    ("Content-Type", "application/x-www-form-urlencoded");
    ("Authorization", Printf.sprintf "Basic %s" hash);
  ] in
  let () = req # set_request_header header in
  let pipeline = new Http_client.pipeline in
    pipeline # add req;
    pipeline # run ()
;;

post_msg がメッセージをポストする関数です。uid にtwitterのユーザーID、pwdにパスワード、msgに投稿するメッセージを入れて下さい。

注意事項ですが、msgはライブラリの中で勝手にURL Encodeされるので、素のデータを渡してください(ちょっとハマリました)。

こうやってBotを作っておけば、サイトを何も更新していなくてもTwitterでは更新し続けている体裁に出来るのがいいですね。