Erlang で Wassr 投稿クライアント書いてみた。

Erlang でも BASIC 認証用のヘッダーを作るのは簡単です。
使い方は start(). 下の後 update("更新するステータス") とやれば更新できます。
import は不人気らしいですが、個人的にはあるとこのソースで何を使ってるのかすぐわかって好きです。
ちなみに無くても動きます。

-module(wassr_client).
-compile(export_all).
-import(mochiweb_util, [urlencode/2]).

-define(SOURCE, "erlang_wassr").
-define(UPDATE_URL, "http://api.wassr.jp/statuses/update.json").
-define(USERNAME, "username").
-define(PASSWORD, "password").

start() ->
  inets:start().

basic_auth_header(nil, nil) -> [];
basic_auth_header(Username, Password) when is_binary(Username) ->
  basic_auth_header(binary_to_list(Username), Password);
basic_auth_header(Username, Password) when is_binary(Username) ->
  basic_auth_header(Username, binary_to_list(Password));
basic_auth_header(Username, Password) ->
  Authorization = binary_to_list(base64:encode(Username ++ ":" ++ Password)),
  [{"Authorization", "Basic " ++ Authorization}].

update(Status) ->
  Params = [{"source", ?SOURCE}, {"status", Status}],
  HTTPResult = http:request(post,
                            {?UPDATE_URL,
                            basic_auth_header(?USERNAME, ?PASSWORD),
                            "application/x-www-form-urlencoded",
                            mochiweb_util:urlencode(Params)}, [], []),
  io:format("~p\n", [HTTPResult]),
  case HTTPResult of
    {ok, {_, _, Res}} ->
      Res;
    _ ->
      {error}
  end.

一応ですが wassr_client:udpate("日本語"). で日本語も通りました]。
urlencode が Erlang にはデフォルトで存在しないため mochiweb からソース持ってきてます。