2
1

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.

Twitterのbotでcsvに記載のアイテムの中からランダムに1つリプライする機能

Posted at

執筆日時:2019.08.06
初投稿です。

#1.botを使うための準備
python 3.6.1
macOS 10.13.6
以下を参考にして鍵とtokenを取得してください
https://qiita.com/yuki_bg/items/96a1608aa3f3225386b6

#2.python書き書き
##0.準備
pipでtwitterのモジュールをinstallします
pip install twitter

##1.Twitterの認証

# OAuth
ACCESS_TOKEN_KEY = 'hoge'
ACCESS_TOKEN_SECRET = 'fuga'
CONSUMER_KEY = 'hogehoge'
CONSUMER_SECRET = 'fugafuga'

oauth = twitter.OAuth(ACCESS_TOKEN_KEY,
                      ACCESS_TOKEN_SECRET,
                      CONSUMER_KEY,
                      CONSUMER_SECRET)

##2.csvから曲データ読み込み
csvを読み込んで行数を変数len_numberに格納しています。

# csvから曲データを読み込み
f = open("database.csv", "r")
csv_data = csv.reader(f)
music_data = [ e for e in csv_data]
number = len(music_data)
len_number = int(number) - 1

##3.フォローしているユーザのみ対象にする
以下を参考にAPIを呼び出しています
https://syncer.jp/Web/API/Twitter/REST_API/GET/friends/ids/

# Retrieve friends IDs
SCREEN_NAME='account'
twitter_api = twitter.Twitter(auth=oauth)
friends = twitter_api.friends.ids(screen_name=SCREEN_NAME, count=5000)
friends_ids = ','.join(map(str, friends['ids']))

##4.特定のリプライに対してランダムにアイテムを返す

for tweet in stream.statuses.filter(follow=friends_ids):
    if tweet['in_reply_to_screen_name']=='account':
        if '@account [反応させたい文字列]' in str(tweet) :
            random_number = random.randint(0,len_number)
            tweet_test = '@' + str(tweet['user']['screen_name']) + ' ' + music_data[random_number][0]
            try:
                twitter_api.statuses.update(status=tweet_test)
            except:
                pass

全コードはgithubに上げてあります。
DANCERUSH STARDOMというダンスゲームの課題曲を教えてくれるbotを作りました(今は動かしてません)

2
1
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
2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?