Skip to content
amamama edited this page Nov 6, 2015 · 4 revisions

よくある質問(まだ一回も質問されてないけど)

全体について

これ何

C言語(C11)で書かれたtwitter APIのラッパです. 現在開発中です.

何ができんの

cの関数を使ってtwitter APIを叩けます. 特徴として,APIの引数全対応が挙げられます. その弊害として,使わない引数も全て関数に渡す必要があります.

対応しているAPIは?

README.mdへどうぞ

実行環境

文字化けするよ

twitter APIはUTF-8(BOM無し)を想定していて,このライブラリも渡された文字列はUTF-8として処理します. その際,エンコードがなんなのかは判断していないので,UTF-8以外のマルチバイト文字を関数に渡すと文字化けをします. 関数を呼ぶ側で予めUTF-8に変換しておいて下さい.

レスポンス見にくいんだけど

twitter APIはjson formatでデータを返しますが,今は一切ライブラリ側でパースをしていません. これを整形すれば目的のデータが得られるので,自分でパースして下さい. jsonのパーサは公式サイトへ行けば下の方にあります. 現在janssonでの動作を確認しています

lib*てどうすれば

これをコンパイルするにはlibcurl,liboauthが必要です. 導入手順はここでは紹介しないので,しかるべき手順を踏んでライブラリを入手して下さい.
libcurl
liboauth

プログラミング

curl_global_init()呼んでも無視されるんだけど.

bear_init()の中でcurl_global_init(CURL_GLOBAL_DEFAULT)を呼んでいます. 2回目以降のcurl_global_init()の呼び出しは無視されるので,curl_global_init(CURL_GLOBAL_DEFAULT)で初期化されるのがまずい場合は,bear_init()を呼ぶ前にcurl_global_init()を呼びましょう.

main関数の中の(twitter_id){0, "your_screen_name"}って何

正式名称をcompound literalという,Cの機能です. 本来そこが書かれている場所はstruct twitter_id型が予期されますが,compound literalを使うことによって構造体リテラルをその場で定義し,使うことができます.