質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Twitter

Twitterは、140文字以内の「ツイート」と呼ばれる短文を投稿できるサービスです。Twitter上のほぼ全ての機能に対応するAPIが存在し、その関連サービスが多く公開されています。

Q&A

解決済

1回答

5848閲覧

Twitterの自動化ツールを作りたいけど作れない

MAXGAMS

総合スコア7

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Twitter

Twitterは、140文字以内の「ツイート」と呼ばれる短文を投稿できるサービスです。Twitter上のほぼ全ての機能に対応するAPIが存在し、その関連サービスが多く公開されています。

0グッド

0クリップ

投稿2018/03/25 07:46

編集2018/03/25 08:31

前提・実現したいこと

超初心者です。
Twitterの自動化ツールを作りたいと思っています。
10分間に一回英単語をtweetするソフトを作成したいです。
起動すれば一回目のツイートはできます。
しかし、whileで数分毎にtweetしようとするとエラーが発生します。
どうすれば良いですか?

発生している問題・エラーメッセージ

Traceback (most recent call last): File "loop.py", line 47, in <module> main() File "loop.py", line 36, in main makeApi().update_status(random.choice(STATUS_DATA)) File "C:\Users\root\AppData\Local\Programs\Python\Python36-32\lib\site-packages\tweepy\api.py", line 194, in update_status )(post_data=post_data, *args, **kwargs) File "C:\Users\root\AppData\Local\Programs\Python\Python36-32\lib\site-packages\tweepy\binder.py", line 250, in _call return method.execute() File "C:\Users\root\AppData\Local\Programs\Python\Python36-32\lib\site-packages\tweepy\binder.py", line 234, in execute raise TweepError(error_msg, resp, api_code=api_error_code) tweepy.error.TweepError: [{'code': 187, 'message': 'Status is a duplicate.'}]

#コード

Python

1import tweepy 2import random 3import signal 4import time 5 6CONSUMER_KEY = "XXXXXX" 7CONSUMER_SECRET = "XXXXXX" 8ACCESS_TOKEN = "XXXXX" 9ACCESS_TOKEN_SECRET = "XXXXX" 10 11auth = tweepy.OAuthHandler(CONSUMER_KEY, CONSUMER_SECRET) 12auth.set_access_token(ACCESS_TOKEN, ACCESS_TOKEN_SECRET) 13""" 14ツイートする文字列 15""" 16STATUS_DATA = [ 17 "they 彼らは、彼女らは、それらは They don't have nuch rain in Australia", 18 "about ?について Please tell about your school", 19 "this これ、この Look at picture", 20 "at で[に] meet at the station at ten", 21 "can ?できる He can play the guitar", 22 "my 私の", 23 "he 彼が", 24 "go 行く go to the library", 25 "are ?である、ある、いる", 26 "we 私たちは[が]" 27] 28 29api = tweepy.API(auth) 30 31def main(): 32 makeApi().update_status(random.choice(STATUS_DATA)) 33 34 35def makeApi(): 36 """Return tweepy.API object""" 37 auth = tweepy.OAuthHandler(CONSUMER_KEY, CONSUMER_SECRET) 38 auth.set_access_token(ACCESS_TOKEN, ACCESS_TOKEN_SECRET) 39 return tweepy.API(auth) 40 41while True: 42 main() 43 print('1') 44 time.sleep(10)

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

MAXGAMS

2018/03/25 07:56

教えてくださってありがとうございます
guest

回答1

0

ベストアンサー

ここです。

Python

while True:
main()
print('1')
time.sleep(10)

インデントの幅が合っていないのでスペース四つに揃えてください。

質問編集を受けて

tweepy.error.TweepError: [{'code': 187, 'message': 'Status is a duplicate.'}]

これですね。引用元:Twitter 開発者 ドキュメント日本語訳 - エラーコードと応答

187 Status is a duplicate 投稿した文章は、このアカウントですでにツイートされています。

どうやら同じツイートを連続できないようです。
直前のツイート内容を記録して、同じものが出たときに再choiceすれば出来そう。

おそらくこれを突破する方法もあるとは思いますが、ちょっとすぐにはわからんです。

投稿2018/03/25 07:58

編集2018/03/25 08:42
LouiS0616

総合スコア35668

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

MAXGAMS

2018/03/25 08:05

インデントの幅を揃え実行したところエラーの内容が変わりました。
LouiS0616

2018/03/25 08:17

ツイート自体は正常に行われているんでしょうか?
MAXGAMS

2018/03/25 08:26

1回目は行われます。 2回目はエラーが発生して行われません。
LouiS0616

2018/03/25 08:44

追記しました。 質問内容がどんどん変わっていくのは好ましくないので、基本的には自力でトライして、どうしてもわからないときには新しく質問を立てることも検討してください。
MAXGAMS

2018/03/25 08:46

やっと理解できました。 本当にありがとうございます。
wakame

2018/03/25 11:28

インデント崩れの件、自動でインデント補正してくれるPyCharmやVisualStudioCode等使うべきかと。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問