Created
January 24, 2018 07:37
-
-
Save nnsnodnb/4b29545518a625b6c9ff6fd37d01cd69 to your computer and use it in GitHub Desktop.
特定のツイートのRTした人を取得してランダムで抽出するソレ
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# coding: utf-8 | |
from requests_oauthlib import OAuth1Session, OAuth1 | |
import requests | |
import settings | |
class APIClient(object): | |
base_url = 'https://api.twitter.com/1.1/' | |
retweeters_endpoint = base_url + 'statuses/retweeters/ids.json' | |
user_show_endpoint = base_url + 'users/show.json' | |
def __init__(self): | |
self.oauth = OAuth1( | |
settings.CONSUMER_KEY, settings.CONSUMER_SECRET, | |
settings.ACCESS_TOKEN, settings.ACCESS_SECRET | |
) | |
def get_retweeters(self, status_id): | |
retweeters = [] | |
cursor = -1 | |
while True: | |
response = requests.get( | |
self.retweeters_endpoint + '?id={}&cursor={}&stringify_ids=true'.format(status_id, cursor), | |
auth=self.oauth | |
).json() | |
retweeters.extend(response['ids']) | |
cursor = response['next_cursor'] | |
if cursor == 0: | |
break | |
return retweeters | |
def request_user_show(self, user_id): | |
response = requests.get( | |
self.user_show_endpoint + '?user_id={}'.format(user_id), | |
auth=self.oauth | |
).json() | |
screen_name = response['screen_name'] | |
return 'https://twitter.com/{}'.format(screen_name) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# coding: utf-8 | |
from api_client import APIClient | |
import random | |
import settings | |
if __name__ == '__main__': | |
api = APIClient() | |
response = api.get_retweeters(status_id=settings.TWEET_STATUS_ID) | |
target_index = random.randint(0, len(response) - 1) | |
twitter_url = api.request_user_show(user_id=response[target_index]) | |
print(twitter_url) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
certifi==2018.1.18 | |
chardet==3.0.4 | |
idna==2.6 | |
oauthlib==2.0.6 | |
requests==2.18.4 | |
requests-oauthlib==0.8.0 | |
urllib3==1.22 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
CONSUMER_KEY = '' | |
CONSUMER_SECRET = '' | |
ACCESS_TOKEN = '' | |
ACCESS_SECRET = '' | |
TWEET_STATUS_ID = '' |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment