7
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

tweepyでRTを取り消す方法

Last updated at Posted at 2017-01-15

#まず結論
API.get_status(ID,include_my_retweet=1)
と指定すると帰ってくるstatusオブジェクトにcurrent_user_retweet{u'id':xxx, u'id_str':u'xxx'}がくっついてくる。
そのIDがretweetIDであり、それをAPI.destroy_status(ID)に入れるとRTが取り消される仕組み。
使用例としてはこんな感じになる。

undo_retweet.py
status = api.get_status(ID, include_my_retweet=1)
if status.retweeted == True:
    api.destroy_status(status.current_user_retweet['id'])

#細かい概要
まずtweepyのAPIリファレンスを除くと下のような感じで表示されている。
このようにIDだけ指定するとcurrent_user_retweetは帰ってこない上にAPI.destroy_retweet(id)も存在しないためRTの取り消しができない。
Image1

一応retweet時に返されるstatusオブジェクトのIDがretweetIDなのだが、一度retweetしてしまうと手動で取り消してやって、さらにretweetIDをtxtファイルなんかに保存しないといけなくなる。これは非常にめんどくさい。
そこで調べてみた所下記の記事が見つかった
http://pg-kura.hatenablog.com/entry/20120328/1332949548

PHP(?)の記事らしいのだが、これがtweepyでそのまま使えるらしい。
要するにリファレンスを見るとidしか指定できないような感じだが実際はinclude_my_retweetも指定できるよということである。

7
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?