

teratailとのマルチポストになります。  
<https://teratail.com/questions/111320>

ツイッターで自分のツイートに無差別でいいねしてくるスパムアカウントに嫌気がさして、pythonのtweepyで自動ブロックしてやろうと  
思っていたのですが、自分のツイートにいいねしてきた人のツイートIDの取得方法がわからなくて困っています。

tweepyのAPIリファレンスは自動翻訳で翻訳して一通り見たつもりですが、いいねしてきた人のツイートIDを取得するメソッドは  
存在しないように思いました。  
もしそのようなメソッドがあれば教えていただきたいです。  
また、別の取得方法がありましたら教えていただきたいです。  
各種キーはすでに設定しておりAPIインスタンスを作成して、自分のツイートとそのIDは取得できております。

最終的にはpythonのtweepyで自分のツイートにいいねしてきた人の中でフォロー数が２１人のアカウントを自動でブロックする  
スクリプトにしたいと思っています。

よろしくお願いします。


CC BY-SA 3.0
2018-01-31T01:37:06.403
41339
2018-01-31T11:50:23.820
2018-01-31T02:56:17.813
26934
26934
question
python twitter
pythonのtweepyで自分のツイートにいいねしてきた人をブロックしたい


ご自身で調べられた通り、公式APIには「いいね」したユーザの一覧を取得する方法は無いようですが、  
自作のPythonコードを書いている方がいましたのでこちらは参考になるでしょうか。

[TwitterAPIに存在しない「いいねしたユーザーを取得」する方法](http://cmpt.hateblo.jp/entry/2017/07/29/171656)

[code]

    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
    
[/code]

なお、コード中のコメントにも記載がありますが上記URLの方は英語版SOでのやり取りを見て  
Python3.x向けにコードを書き直したようです。元質問の方はPython2.x向けのコードでした。

[Twitter API - Getting list of users who favorited a status - Stack
Overflow](https://stackoverflow.com/questions/28982850/twitter-api-getting-
list-of-users-who-favorited-a-status)


CC BY-SA 3.0
2018-01-31T11:50:23.820
41355
2018-01-31T11:50:23.820
3060
41339
answer