2012年10月13日土曜日

ふぁぼれなくなっとるじゃん!TwitterAPI1.1かあ…

私のような者を三日坊主と言います。お久しぶりです。


以前、BOTにふぁぼり機能を追加する改造例を紹介しました。

BOTだってお気に入り ふぁぼり機能
http://6zr.blogspot.jp/2011/05/bot.htm

ところがある日気がついたらうちのBOT、ふぁぼれていませんでした
どうやらTwitterAPIが1.1へと移行し、仕様もいろいろ変わるようです。中でもここで使用するふぁぼり周りはいち早くその影響を受けるようです。






どういうこと?

 

今まで使っていたバージョン1のふぁぼりAPIがこちら。
https://dev.twitter.com/docs/api/1/post/favorites/create/%3Aid
Version 1 of the API is now deprecated. This document may describe an outdated version of the API. Please move to Version 1.1 of the API as soon as possible.
 とあります。もう使えないからバージョン1.1を使いなさいって感じ。
 
で、その バージョン1.1がこちら。
https://dev.twitter.com/docs/api/1.1/post/favorites/create



違いはいろいろあるんだと思いますが、とりあえずどこを見るかと言うと、リクエストURL例の欄。 Example Request
  • https://api.twitter.com/1/favorites/create/132256714090229760.json
  • https://api.twitter.com/1.1/favorites/create.json
リクエストパラメータは特に変わりないので、このURL部分を書き換えてやれば動くんじゃないの?という話ですね。



じゃあ何をすればいいの

 

つまり、以前の記事で以下のようにしていた部分を
$favourl = "http://api.twitter.com/favorites/create/".$favoid.".xml";


以下のように変更してやれば。
$favourl = "https://api.twitter.com/1.1/favorites/create.json";


全体像としてはこう。(1行置き換わっただけだけど)



例によって、ちゃんと動くかどうかとか、なんかおかしくなったらとか、保証はできません。
多分うまくいくんじゃないかな。 



これからどうなるの

 

EasyBotterではAPIの戻りにxmlを指定して、simplexml_load_stringとかっていうものを使って結果を読み込んでいたんですよね。
今回はjsonで受け取るように変更しました。TwitterAPI1.1ではxml対応してないっぽいです?(要確認)そのせいで、今回の記事の方法をそのまま使うと毎回警告文が出たりするかもしれません。「xmlで読めっつーけどこれjsonじゃん!」みたいなやつが。
ふぁぼりの場合はAPI実行結果をちゃんと取れなくてもまあいいかという感じなので放置してますが、明らかによろしくない。json_decodeとかそういうのを使ってやればうまくいくのかなあ。
いずれ、home_timelineなど他に使っているAPIも完全に1.1に移行するはずです。その際にはこういう修正を加える必要が出てきそうな雰囲気です。URL変更とか、xmlからjsonに変更とか、それだけならまだしも……ちょっとうんざりします。
ま、それはその時考えるということにします。今回の所は、またふぁぼれるようになったよめでたしめでたし ということで。

2 件のコメント:

  1. 指定する単語をふぁぼるんじゃなくてタイムライン上のツイートを無差別でふぁぼる場合はどこを削除してのせればいいんでしょうか?
    ちなみにbot.phpのほうはどう設定すればいいのでしょうか??

    質問ばっかりすみません。

    返信削除
  2. コードを使わせていただいている者です。
    easybotterを2.1にしたら機能しなくなってしまいました。
    こちらに原因があるのかもしれませんが、一応ご報告まで。

    返信削除