見出し画像

PythonでTwitterに投稿してみる4-複数投稿

このnoteはPythonの事をメモしたりしているため、Python以外の事は基本書いておりません。例えば今回使っているbotはサーバー側のクーロンの技術を使って定期的にツイートしておりますが、このnoteではやり方はでません。もし希望されるかたはコメント下さい。考えます。

前回のコードは・・・なんだったのか忘れたので貼っておきます

import tweepy


# 先ほど取得した各種キーを代入する
CK="API key"
CS="API secret key"
AT="Access token"
AS="Access token secret"

# Twitterオブジェクトの生成

auth = tweepy.OAuthHandler(CK, CS)
auth.set_access_token(AT, AS)
api = tweepy.API(auth)

# 好きな言葉をツイート

api.update_status("buildreeなら、簡単に構築できます。\n https://buildree.com/ \n #buildree ")

こんなコードでした。単一ツイートするにはよいかもしれませんが複数ツイートはできません。ちょっと調べてみました

複数ツイートをしたい

TwitterのAPIを使うので、単一ツイートするだけなら別に自分でツイートするのとあまり変わりません。

複数ツイートをしたいと思うのでやってみたいと思います調べていたら簡単に好きな文章で定期ツイートをする方法(Python3,Tweepy)というnoteを見つけました。これは嬉しいのでちょっとマネしてみたいと思います

コード

コードは以下のようになります

import random
import tweepy


# 先ほど取得した各種キーを代入する
CK="API key"
CS="API secret key"
AT="Access token"
AS="Access token secret"

# Twitterオブジェクトの生成

auth = tweepy.OAuthHandler(CK, CS)
auth.set_access_token(AT, AS)
api = tweepy.API(auth)

while True:
   ran = random.sample(range(9999), k=1)
   
   Tweet1001 = (f'buildreeなら、簡単に構築できます。\n https://buildree.com/ \n #buildree{ran}')
   
   Tweet1002 = ('Pythonで西暦を和暦にできるかやってみた\n https://www.logw.jp/cloudserver/9681.html')


   auth = tweepy.OAuthHandler(CK, CS)
   auth.set_access_token(AT, AS)
   api = tweepy.API(auth)

   
   api.update_status(Tweet1001)

   auth = tweepy.OAuthHandler(CK, CS)
   auth.set_access_token(AT, AS)
   api = tweepy.API(auth)

   api.update_status(Tweet1002)

ran 変数があるのは、Twitterの場合は同じ文章を投稿することができない(時間をあけないといけない)ので、ランダムな数字をいれることで同じツイートではないという事をしています。たまに同じツイートで●●回目ってあって統一がない場合は自動で数字がながれているだけになります

FireShot Capture 094 - (1) ホーム _ Twitter - twitter.com

複数投稿できました。ただ、、なんか違う・・・

別にこれならwhile必要ない

結果論ですが、複数ツイートをするのにwhileを使う必要性があまりありません。同じように複数ツイートするコードをかいてみます

複数ツイートするコード

import random
import tweepy


# 先ほど取得した各種キーを代入する
CK="API key"
CS="API secret key"
AT="Access token"
AS="Access token secret"

# Twitterオブジェクトの生成

auth = tweepy.OAuthHandler(CK, CS)
auth.set_access_token(AT, AS)
api = tweepy.API(auth)

api.update_status("テスト投稿1")
api.update_status("テスト投稿2")

api.update_statusを2つのせました

FireShot Capture 095 - ホーム _ Twitter - twitter.com

問題無くテスト投稿1と2がツイートされてます。なんのためのwhileかわかりませんがコードが無駄に長いので無駄な気がします。

自分がやりたいこととは違ったのでちょっと考え直します

まとめ

複数ツイートするのにwhileはいらないなと。↑のコードの方がなぜかAPIの指定を2回していたり無駄なコードが多い気がしました。1行足せば良いだけなので複数行やりたいなら単純にapi.update_statusを追加するほうがいいです

お役に立ちましたか?

投げ銭 or お仕事をいただけるともっと頑張れます!
・note
・仮想通貨(bitflyer)
キャッシュ
のどれでも構いません
ビットコインアドレスは以下になります
3LHnADwZwUbic2L45EnVJEykiG6KfbqrwS

この記事が気に入ったらサポートをしてみませんか?