C++ ときどき ごはん、わりとてぃーぶれいく☆

USAGI.NETWORKのなかのひとのブログ。主にC++。

twitcurl - C++ Twitter Library てのが使い易いのではなかろうか

Twitterを扱うC++のライブラリー」について何を使ったら良いか、最近Bjarne鈍器本日本語版を購入してC++の勉強を始めた学生さんに紹介する事になった。OAuthなりXAuthなりでTwitterをさっくり使える様になる、という条件はライブラリーを使うのだから当然として、何かしらのエラーに遭遇した際にもC++の手練でなくともそれなりに対処できそうなものが良い。

Twitter公式の開発者向け情報に幾つかのライブラリーが紹介されている。

Qtが絡んでいるものは一応試してみたが、g++の使い方について、またincludeやlibについてC++を使い始めた直後の最低限の知識で挑むにはちょっと面倒な事に。Qt Creatorの存在は紹介してあったとしても、C++を初めていきなりQtで勉強するというのはちょっとまあ大変なんじゃないかなーと思ったりもするなど。というか実際大変だと思うのでQtはBjarne本を2/3くらい読み進めた頃に使い始めてみれば良いと思う・w・

libOAuthはC++じゃなくてとってもCだしTwitterに特殊化されたライブラリーでも無い様なのでとりあえず候補外へ。extern "C"を御呪いなり適当に教える事はできても、実際CのライブラリーをC++から使いながらC++を勉強すると言うのはこれはこれで大変だ。ストレス的な意味でも。wrapperを作りながらと言うのはやはりせめてBjarne本を半分ほど読み進めて、また他に良いC++のライブラリーやwrapperが無い場合に仕方無くやれば良いのではないかと。

と、言う訳でTwitcurlが候補に残る。

ソースを見るのはとりあえず動作確認してからでいいや、って訳で(ぉ

Twitcurlの使い方がライブラリーの公式Wikiにあったので参考に試してみる。以下、執筆時点の邦訳を基本に一部勝手な手順で解説。

Twitcurlの使い方 (UNIX/Linux編)

step.1 ライブラリーの動作に必要なものが揃っているか確かめる
  • g++ (=GCCC++コンパイラー)
  • libcurl (OSとパッケージ管理システムによってはcurlと同梱とかlibcurl4だったりとか)
  • svn (=SubversionというGitやMercurialとは異なる方式のバージョン管理ツール)
step.2 Twitcurl ライブラリーの導入
svn co http://twitcurl.googlecode.com/svn/trunk/libtwitcurl

とかやると`git clone hogehoge`とかやる様な事のSubversion版をできる。svnはSubversionの実行コマンドでGitにおけるgitコマンドに相当。

成功すると、`libtwitcurl`というディレクトリが作られ、その中にライブラリーの最新のソース一式が入っている。ディレクトリーを移ろう。

cd libtwitcurl

ライブラリーをビルドしてシステムへインストールしよう。ビルドの定番コマンド、`make`と`sudo make install`で良い。

make

エラー無くライブラリーがビルドできたなら、

sudo make install

これでシステムの適切な場所へと libtwitcurl がインストールされる。

step.3 TwitterClientサンプルを試す

ライブラリーと共に保守されているサンプルをライブラリー同様に入手、ビルドし、動作を確認してみよう。(※なお、ライブラリーをビルドしたディレクトリーにまだ居る場合は`cd ..`などして外へ出てからサンプルの最新ソース取得を行う様に注意する事。)

svn co http://twitcurl.googlecode.com/svn/trunk/twitterClient
cd twitterClient
g++ twitterClient.cpp -ltwitcurl

`g++`はC++のソースをコンパイルするコマンド。twitterClient.cppはサンプルのC++ソースファイル。`g++`を使う際には先程libtwitcurlをインストールしてあるので`-ltwitcurl`(libナントカのlibを抜いた部分)を指示すればライブラリーをリンクした実行ファイルを生成してくれる。

出力ファイル名を省略した場合、`a.out`とかテケトーなファイル名の実行ファイルが生成される。もし、出力する実行ファイルの名前を指示したい場合は、`-o application_name`などとオプションを追加すれば良い。

後は実行ファイルを実行して動作を確認しつつ、ソースコードを眺めたら良い、と思う。少なくとも私自身は動作を確認する事までは出来た。ソースコードを読んで使い易いライブラリーだったか、改善点があるか、別のライブラリーの方が良さそうかなどは、このライブラリーを紹介した学生さんから感想文を聞くとしよう・w・

不自由な(ry編の邦訳…

なにそれおいしーの・w・