🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
さくらのVPS

さくらのVPSは、さくらインターネット社が提供するVPS(仮想専用サーバー)です。高速なSSDの選択や複数台構成も可能。利用者に応じた柔軟なプランが用意されています。大規模システムにも対応可能なスケーラビリティを備えたホスティングサービスです。

Flask

FlaskはPython用のマイクロフレームワークであり、Werkzeug・Jinja 2・good intentionsをベースにしています。

OAuth

OAuth(Open Authorization)は、APIを通して保護されたリソース(サードパーティのアプリケーション)へアクセスする為のオープンプロトコルです。

Twitter

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

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

1回答

1359閲覧

TwitterAPIのcallback時における接続拒否について

aygakusei

総合スコア13

さくらのVPS

さくらのVPSは、さくらインターネット社が提供するVPS(仮想専用サーバー)です。高速なSSDの選択や複数台構成も可能。利用者に応じた柔軟なプランが用意されています。大規模システムにも対応可能なスケーラビリティを備えたホスティングサービスです。

Flask

FlaskはPython用のマイクロフレームワークであり、Werkzeug・Jinja 2・good intentionsをベースにしています。

OAuth

OAuth(Open Authorization)は、APIを通して保護されたリソース(サードパーティのアプリケーション)へアクセスする為のオープンプロトコルです。

Twitter

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

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2021/01/10 00:21

【わからないこと】
TwitterでのOAuth認証後にcallbackされるURLへ接続拒否される。
手詰まりになってしまったため、このようなことを調べればよいというヒントだけでも
教えていただきたいです。

【問題詳細】
◆目的
Twitter認証後に、callbackのサイトを表示したい。

◆課題
TwitterでのOAuth認証後にcallbackされるURLへ接続拒否

◆確認手順
①:flaskで app.run(host='0.0.0.0',debug=True)を実行
②:ブラウザで('/')のURLにあるindex.htmlに接続

flask

1@app.route('/') 2def index(): 3 auth() 4 return render_template("index.html")

③index.html上で表示される、Twitter認証用のURLへアクセス
④Twitter認証画面へ
⑤:認証が完了すると、callbackに指定している'/callback'に自動で遷移
⑥:遷移の際に、”このサイトにアクセスできません(サクラVPSのIPアドレス)で接続が拒否されました。”と表示

◆確認したこと
・手入力で/callbackにアクセス
結果:アクセス可能
⇒ファイアウォールの設定が問題かと不安になる

・ファイアウォールの確認
http.httpsの許可を確認。また、パケットフィルタがかかっていないこともさくらVPSの機能で確認

実行:sudo firewall-cmd --list-all
結果
public (active)
target: default
icmp-block-inversion: no
interfaces: eth0
sources:
services: dhcpv6-client http https ssh
ports: 50320/tcp
protocols:
masquerade: no
forward-ports:
source-ports:
icmp-blocks:
rich rules:

【環境】
VPS:さくらVPS
OS:CentOS7.0
python:3.6.8
flask:1.1.2
OAuth:from requests_oauthlib import OAuth1Session
ブラウザ:Google Chrome

以上、よろしくお願いいたします。

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

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

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

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

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

A_kirisaki

2021/01/10 03:54

/callback のエンドポイントはもう作ってありますか?
aygakusei

2021/01/10 04:39

勉強不足で申し訳ないです。エンドポイントの意味が分からず。。。 下記のように、callbackへのアクセスがあった場合、リダイレクトする先は設定してあります。 @app.route('/callback/',methods=['GET']) def callback(): return render_template("test.html") なので、Twitter認証後の自動認証ではなく、手打ちのURLで/callback/へアクセスした場合は、test.htmlが表示されています。 的外れな回答でしたら申し訳ないです。 再度ご質問いただけると幸いです。
A_kirisaki

2021/01/10 05:28

Twitter で認証した時 Flask のログに callback 宛のログ残ってます?
aygakusei

2021/01/10 05:36

サーバーのログには残っていませんでした。 HTTPのステータスコードも帰ってきていません。 強制的にサーバーが終了してしまいます。 (Ctrl+Cと同じ状態)
A_kirisaki

2021/01/10 05:39

その終了時のエラーメッセージ追記できますか?
aygakusei

2021/01/10 06:19

すみません。エラーコード載せる時点で解決しました。 今回、認証用のURLをprintしていたので、コマンドプロンプト上でURLをコピーするために、Ctrl+C押していました。 しかし、Ctrl+Cを押したせいで、pythonの起動を毎回強制終了していました。 大変お恥ずかしいです。 お時間とっていただいたのに申し訳ございません。
aygakusei

2021/01/10 06:28

自分も2日間悩んでいたのが、嘘のようです。。。 お付き合いいただきありがとうございました!
guest

回答1

0

【解決】
サーバー実行中に、コマンドプロンプト上のURLをコピーするためにCtrl+Cを押していた。
今回のpython実行環境では、Ctrl+Cが強制終了コマンドであったため、コピーをしたつもりがプログラムの実行を終了していた。

投稿2021/01/10 06:28

aygakusei

総合スコア13

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.36%

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

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

質問する

関連した質問