質問: teratailとのマルチポストになります。 ツイッターで自分のツイートに無差別でいいねしてくるスパムアカウントに嫌気がさして、pythonのtweepyで自動ブロックしてやろうと 思っていたのですが、自分のツイートにいいねしてきた人のツイートIDの取得方法がわからなくて困っています。 tweepyのAPIリファレンスは自動翻訳で翻訳して一通り見たつもりですが、いいねしてきた人のツイートIDを取得するメソッドは 存在しないように思いました。 もしそのようなメソッドがあれば教えていただきたいです。 また、別の取得方法がありましたら教えていただきたいです。 各種キーはすでに設定しておりAPIインスタンスを作成して、自分のツイートとそのIDは取得できております。 最終的にはpythonのtweepyで自分のツイートにいいねしてきた人の中でフォロー数が21人のアカウントを自動でブロックする スクリプトにしたいと思っています。 よろしくお願いします。
回答: ご自身で調べられた通り、公式APIには「いいね」したユーザの一覧を取得する方法は無いようですが、 自作のPythonコードを書いている方がいましたのでこちらは参考になるでしょうか。 TwitterAPIに存在しない「いいねしたユーザーを取得」する方法 ``` import urllib.request import re # https://stackoverflow.com/questions/28982850/twitter-api-getting-list-of-users-who-favorited-a-status def get_favoritters(post_id): try: json_data = urllib.request.urlopen('https://twitter.com/i/activity/favorited_popup?id=' + str(post_id)).read() json_data=json_data.decode("utf8") found_ids = re.findall(r'data-user-id=\\"+\d+', json_data) unique_ids = list(set([re.findall(r'\d+', match)[0] for match in found_ids])) return unique_ids except urllib.request.HTTPError: return False ``` なお、コード中のコメントにも記載がありますが上記URLの方は英語版SOでのやり取りを見て Python3.x向けにコードを書き直したようです。元質問の方はPython2.x向けのコードでした。 Twitter API - Getting list of users who favorited a status - Stack Overflow