2
0

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 3 years have passed since last update.

PythonでTwitterのツイートをしてみたいけどハマった話

Last updated at Posted at 2020-10-12

自動でTwitterのツイートをしてみたいという話を聞いて、ちょっと作ってみたがハマった話

#CONSUMER_KEYがない

色々なサイトを見て検索するとpythonからツイートをするにあたって必要な項目が4項目あります。

CONSUMER_KEY,
CONSUMER_SECRET,
ACCESS_TOKEN,
ACCESS_SECRET

が必要と出てくるのですがどう見てもCONSUMER_KEYとCONSUMER_SECRETがない!

スクリーンショット 2020-10-10 16.10.27.png

ただ、どうやっても見つからないので検索すると

CONSUMER_KEYはAPI KEYで
CONSUMER_SECRETはAPI_key_secretでいいそうです。

検索すればよく見るコードですが下記のコードに変数を変更しました。
このほうが理解しやすいと思います。

twitter.py
import json
from requests_oauthlib import OAuth1Session

#ここにKeyとToken
API_KEY = 'XXXXXXX'
API_KEY_SECRET = 'XXXXXXX'
ACCESS_TOKEN = 'XXXXXXX'
ACCESS_TOKEN_SECRET = 'XXXXXXX'

twitter = OAuth1Session(API_KEY, API_KEY_SECRET, ACCESS_TOKEN, ACCESS_TOKEN_SECRET)

url = "https://api.twitter.com/1.1/statuses/update.json"
print(twitter)

tweet = "Pythonからのテストツイートです\r改行する\r\n改行\n改行"  # ツイート内容

params = {"status" : tweet}

req = twitter.post(url, params = params) #ここでツイート

if req.status_code == 200: #成功
    print("Succeed!")
else: #エラー
    print("ERROR : %d"% req.status_code) 

#401エラーでツイートができない

API_KEYを取ったあと上記コードで実行を行っても

ERROR : 401

で全然ツイートができない。このケースは設定漏れでした。401の通り、権限なしでした。

まず、最初の設定は読み込みのみなので書き込みもできるように設定を変更しました。

スクリーンショット 2020-10-12 20.20.33.png

ただ、401エラーは継続です。

なんで出来なかったか。

多分ですがあとは読み込み & 書き込み設定に変更したあとに
再度ACCESS_KEYを取り直すこと(regenerate)。

スクリーンショット 2020-10-12 20.21.00.png

再度取得しないと読み込みしか出来ないACCESS_KEYを使用している状態で書き込みができないのだと思われます。

それでも401エラーダメな場合は何度か取得して変数に代入してみてください。

#参考資料

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

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?