Twitter Botで引用RTをするときにつまづいたメモ


はじめに

今回が人生初、Qiita投稿となります。
仏のような心をもってこの記事を読んでください。
間違っていたところがあれば指摘していただけると嬉しいです。

何が起こった?

学校にて、そのあまりにもの授業の面倒くささから午後だけ休み、プログラムを書いてやろうと思い、工業力学と英語の授業にバイバイしました。

そこで前々から作りたかった「自分がその日コミットしていなかったら#contributter_reportの自動ツイートを利用して自分を煽り散らすTwitter Bot」を作ることにし、その中で引用RTをしたいと思い、調べてみましたが公式のドキュメントにもググってもなかなか出てきません。
そこでやっと見つけたので、僕と同じような人がいたらググって検索結果に出てきやすいようにQiitaの記事を書くことにしました。

引用RTをする方法

これは周知の事実で僕だけが知らなかったとしたら非常に恥ずかしいのですが、
引用RTは 引用RTにそえる文字と同時に引用元のツイートのURLをツイートするだけでできます。

例として下のツイートを引用RTとすると、このツイートのURLをコピーし

引用RTするテキストと一緒に引用元のツイートのURLを貼り付けてツイートするだけで、

この様に引用RTすることができます。

サンプルコード

別ファイルのkey.pyにAPIkeyやアクセストークンを設定していて最初にimportしています。

import tweepy
from key import CONSUMER_KEY, CONSUMER_SECRET, ACCESS_TOKEN_KEY, ACCESS_TOKEN_SECRET

auth = tweepy.OAuthHandler(CONSUMER_KEY,CONSUMER_SECRET)
auth.set_access_token(ACCESS_TOKEN_KEY,ACCESS_TOKEN_SECRET)
api = tweepy.API(auth)

tmp = 'https://twitter.com/genshi0916/status/'
for tweet in tweepy.Cursor(api.search, q='genshi0916 contribution 0').items(1):
  text = tweet.text
  id = tweet.id

  try:
    print(text)
    print("contribution数:0ってどういうことですか?????????????進捗出してください\n" + tmp + str(id))
    api.update_status("contribution数:0ってどういうことですか?????????????進捗出してください\n" + tmp + str(id))

  except:
    print('error')

tweet.idでツイートのidを取得し、tmpにツイートID以外の部分(今回はgenshi0916のツイートのみに反応するbotなので'https://twitter.com/genshi0916/status/' となっています。)

ユーザー名はこのソースのままでいくと、

user_name = tweet.user.screen_name

など追加しその次の行にtmpを移動させ下のようにすると良いと思います。

tmp = 'https://twitter.com/'+user_name+'/status/'

まとめ

引用RTは文字と引用元のツイートのURLをツイート!!!!!!

この記事が誰かの助けになってくれたら嬉しいです。
Twitter BotでよきTwitterライフを!!!

ソースはGithubで公開しているのでurlを貼っておきます。
https://github.com/Genshi0916/genshi-contribution-check

参考文献