facebookのAPI覚書
IMG_2951
霧はまだ晴れぬ

FacebookのGraph APIであれこれいじっているんだけれど、いくつかハマったので覚書しておく。

・Graph APIを呼び出した直後、’/me’ は正しく動作しない
 →アクセストークンがあるにも関わらず、情報を拾ってこれない(基本データは存在する)。実はバグらしく、同様にハマっている人多数。どうやらやらない方がいいらしいという結論。面倒でもFQLでprofileを拾って来て展開した方が確実。ところがなぜかuid=me()はちゃんと動作する。

・facebook->getUser() は 0 を返す事がある(本来ユーザIDを返す)
 →これはハマった。offline_contents をオンにする等いくつかの解決策があるが、どれも決め手に欠ける。base_facebook.php のコーディングがいい加減なせいという説も。最も効果的なのはリダイレクトの順番を整理すること+JavaScriptを使う事なんだけれど、URIが汚くなるからここで使いたくないんだよね〜、JS。未解決→調査中。

・個人のストリーム(タイムライン)を表示するには、read_stream をオンにすればよい
 →ただし、FQLで呼び出すと死ぬ程遅い。また、SELECT * FROM …が使えないのでqueryコードが長くなってみっともない。読み込み数を指定しないと拾って来る数はデフォルトで10エントリ。呼んで来たデータ見てみると、エラーになったやつとか残ってたりするという無駄がある。その分サバ読んで多めに取って来ると読み込み時間が…というスパイラルに落ちる。どうりでfacebook「に」投稿するアプリは沢山あるが、facebook「から」読み込むヤツは少ない訳だ。

・JSのfb:login系ソーシャルプラグインの動作と、facebook->api 等のGraph APIを混在させると上手く動かない(もしくは動作が不安定)ことがある
 →どちらかに統一したほうがすんなりいくことがある。というか、ソーシャルプラグインも動作不安定で遅いんだよね。

・アプリケーションのダッシュボードで設定した内容が反映されるまで、短い時は数秒だが、長い時は数時間かかることがある
 →あまりいじらない方がいい(マテ。

・拾って来るアクセストークンの有効時間
 →およそ18時間(これを書いている時点)。

・HTTPリクエストして正しいトークンを展開してセットしているにもかかわらず、そんなの知らネ〜と言われることがある
 →

・APIを作ったヤツがタコなのか、全部を見ている人がいないのか、用語がバラバラで使いにくい
 →例えばユーザIDはuidだったりidだったりとクラス毎にちがったり違わなかったりでややこしい。大体自分のユーザIDなんて普通は知らないだろ…。これをダイナミックに取って来るためだけに別途API呼ばないとダメというオチが…。

・APIで取って来るstreamデータには、Likeを付けた人が3〜4名だけ記録されていて、後はブラウザリンクで飛ばないと見る事が出来ない
 →全員のアイコン並べるとかは出来ない模様(ロード時間かかり過ぎるからヤラネーけど)。

add your comment

*First time to comment? Please comment in English or Japanese to avoid your comment as spam.