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

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

新規登録して質問してみよう
ただいま回答率
85.50%
Anaconda

Anacondaは、Python本体とPythonで利用されるライブラリを一括でインストールできるパッケージです。環境構築が容易になるため、Python開発者間ではよく利用されており、商用目的としても利用できます。

Python 3.x

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

Twitter

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

API

APIはApplication Programming Interfaceの略です。APIはプログラムにリクエストされるサービスがどのように動作するかを、デベロッパーが定めたものです。

Q&A

解決済

1回答

14390閲覧

TwitterAPI error:401の解決方法が知りたい

Lang_20

総合スコア5

Anaconda

Anacondaは、Python本体とPythonで利用されるライブラリを一括でインストールできるパッケージです。環境構築が容易になるため、Python開発者間ではよく利用されており、商用目的としても利用できます。

Python 3.x

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

Twitter

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

API

APIはApplication Programming Interfaceの略です。APIはプログラムにリクエストされるサービスがどのように動作するかを、デベロッパーが定めたものです。

0グッド

0クリップ

投稿2020/07/23 03:47

編集2020/07/23 23:47

なぜか2番目のコードを実行すると401エラーが出ます。
キー&トークンは間違いなくtwitterに入ってるので、1番目のコードはエラーなく実行できます。

---試した事---
callback_urlに適当にURLを貼った。
---権限---
イメージ説明

python

1#------------------------------This is 1------------------------------- 2twitter = OAuth1Session(CONSUMER_KEY, CONSUMER_SECRET, ACCESS_TOKEN, ACCESS_SECRET) 3url = "https://api.twitter.com/1.1/statuses/user_timeline.json" #エンドポイント設定(どこを叩くのか??) 4 5params = {'count': 5} 6res = twitter.get(url, params=params) 7 8timelines = json.loads(res.text) 9timeline = timelines[1] #最上位が0 #スライスで指定する必要あり 10print(timeline['user']['description']) #user内に存在するnameを取る 11print(timeline['text']) 12#-----------------------------This is 2------------------------------- 13twitter = OAuth1Session(CONSUMER_KEY, CONSUMER_SECRET, ACCESS_TOKEN, ACCESS_SECRET) 14url = "https://api.twitter.com/1.1/statuses/update.json" #投稿のエンドポイント 15params = {'status': 'テストツイート'} 16tweet = twitter.post(url, params=params) 17print(tweet) 18

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

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

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

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

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

guest

回答1

0

ベストアンサー

https://developer.mozilla.org/ja/docs/Web/HTTP/Status/401

HTTP 401 Unauthorized は、有効な認証資格が不足していることによりリクエストが適用されないことを示すクライアントエラーのレスポンスコードです。

アプリケーションの権限(Permissions)でアクセス権限(Access permission)に、書き込み権限(Read and write)があるかどうか。
トークンを振り出したアカウントからみてアプリのアクセス権が読み取りと書き込みになっているかを確認しましょう。


python

1print(tweet.content)

python

1print(tweet.json()['errors'][0]['code']

の結果を見てみましょう。

そして https://developer.twitter.com/en/docs/basics/response-codesのError Codesの説明を読みます。

投稿2020/07/23 05:05

編集2020/07/24 00:03
quickquip

総合スコア11029

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

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

Lang_20

2020/07/23 23:46

新しく載せた画像のように"Read and write"ともしたのですがダメでした。 何が原因なのでしょうか。
quickquip

2020/07/24 00:07

"ともした" ということは新しく設定したのですか? その場合「トークンを振り出したアカウントからみてアプリのアクセス権」は変わらないはずなのでトークンを取り直してみてください。そもそも「アカウントから見たアプリのアクセス権」は確認しているのでしょうか? (考えてみてください。ユーザが最初読み取り専用だと思ってアプリにアクセス権を与えて、アプリ側があとから"Read and write"に権限変更したらトークンの権限も勝手に変わってました、なんてありえないでしょう?)
Lang_20

2020/07/24 04:35

トークンを取り直した結果できました。 助かりましたありがとうございますm(_ _)m
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問