Tosainu Lab

てすとおわりました

みょん.

後学期の中間テストが終わりました.
今回のテストはそんなに辛くなかったというか, 来週の専門科目の小テのほうが怖かったりします. はい.

✿ 最近のこと

twitpp

最近全く弄っていなかったのですが, あることが一段落したのでどんどん改良しています.
8月に書いたコードが汚すぎて手を付けられないくらいひどいので…

改めてtwitppの紹介をすると, C++11以降(not VC++)でTwitterを扱うためのライブラリです.
開発当初はlibcurlを使っていましたがBoost.Asioに切り換え, Userstream接続なんかにも対応しました.

// consumer_key等をセット
twitpp::oauth::account account("CONSUMER", "CONSUMER_SECRET");
// access_tokenも設定できる
// twitpp::oauth::account account("CONSUMER", "CONSUMER_SECRET", "ACCESS", "ACCESS_SECRET");

// authorization urlを取得
account.get_authorize_url();
std::cout << account.authorize_url() << std::endl;

// PINを渡して認証
account.get_oauth_token(pin);

// oauth::clientクラスに認証したoauth::accountを渡す
twitpp::oauth::client oauth(account);

// ツイートする
auto res = oauth.post("https://api.twitter.com/1.1/statuses/update.json", {{"status", "Test Tweet!"}});
std::cout << res.response_body << std::endl;

// userstreamに接続
oauth.get("userstream.twitter.com", "/1.1/user.json", [](int& status, std::string& text) {
  std::cout << text << std::endl;
  text.clear();
});

ある程度いい感じになってきたと思っているので, 近いうちにこれを組み込んだあるものを作っていきたいなぁと思っています.

また, twitppは何度も言うようにコードが汚い部分が多く, 特にtwitpp::net::async_clientとかtwitpp::oauth::clientのlambda式を渡すget()post()は早急に改善したいなぁって感じです.

ではではー.