TwitterAPIでRT削除にハマった件+α

TwitterAPIでリツイート削除するのに結構調べたので備忘録で残しておく。


ぐぐってみると「destroyでOK」みたいなのは見つかるんだけど
destoryすると「他のユーザのツイートを削除することができません」
というエラーで削除できない。


この時点でハマってたんだけど、リツイートを削除するには
リツイート元のステータスID」ではなく
リツイートした時に新たに付与されるID」を使わないといけないらしい。
通常のタイムラインにはそのIDは表示されないため、
一度 retweet_by_me を叩いてリツイート元のIDを探す必要がある。

サンプルコード


retweet_by_meから元のステータスIDを探すんだけど、
直接指定することはできないのでループで元のIDを検索して
マッチしたらリツイートIDを取得する、
といったことをしないといけない。
ちょっと面倒ですね。



これだけでも何なので、
Twitter関連のTipsみたいなのも書いておきます。

Twitterのcreated_atを日付に変換したり

このあたり、Net::Twitterだと変換してくれるんですが
いろいろインストールされるのであまり使いたくないですよね!
そこで簡単な変換クラスを作ればいいと思います。

ちなみにREST APIで取得した場合とSearchAPIで取得した場合で
日付のフォーマットが違うので2つ用意してます。

friendを全員取得


これだけ。
ちなみに両想いの友達を取得したい場合は
上記レスポンスに「following」という要素があるので
これがONかどうかで判定することができます。