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

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

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

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

Python 3.x

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

API

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

Q&A

0回答

1065閲覧

QiitaAPIのリダイレクトが行われない

退会済みユーザー

退会済みユーザー

総合スコア0

Flask

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

Python 3.x

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

API

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

0グッド

1クリップ

投稿2018/09/18 00:37

編集2018/09/21 15:23

QiitaAPIを使いたいです。

認証画面を描画することはできましたが、メールアドレスとパスワードを入力し、ログインボタンを押してもcodeとstateのついたURLが返ってきません。

リダイレクトされていないようです。何が問題のでしょうか?
Flaskの開発中のURLである「http://127.0.0.1:5000/」をWebサイトのURLとし、
「http:127.0.0.1:5000/callback/」をリダイレクト先URLにしています。

http://127.0.0.1:5000/login/に認証画面をそのまま出力しています。
ログインボタンを押すと、postが登録されていないといわれたので、
一応、別のhtmlを描画するようにしてあります。

一体、どのようにすればcodeとstateの付与されたリダイレクトがされますか?

python3

1@app.route('/login', methods=['GET', 'POST']) 2def login(): 3 if request.method == 'GET': 4 r = get_user_id() # 認証画面を開く 5 if r.status_code == 200: 6 r = r.text 7 return render_template('login.html', qiita=r) 8 elif request.method == 'POST': 9 return render_template('result.html')

python3

1import QiitaInfo 2from requests import get, post 3 4def get_user_id(): 5 client_id = QiitaInfo.ID 6 url = 'https://qiita.com/api/v2/oauth/authorize' 7 params = { 8 'client_id': client_id, 9 'scope': 'read_qiita', 10 'state': 'b17785d811bb1913ef54b0a7657de780defaa2d' 11 } 12 results = get(url, params=params) 13 return results

python3

1@app.route('/callback', methods=['GET', 'POST']) 2def main(): 3 return render_template('result.html')

追記
Qiitaをログアウトした状態かつTwitterによる認証のみうまく動作しました。
Qittaをログインしている状態、メールアドレスとパスワードによる認証はうまくいっていません。

さらに追記
callbackのルーティングを記載しました。

さらに追加
/loginを別のものに変更すると、メールアドレスとパスワードによるログイン、認証ができました。

しかし、依然として、既にQiitaにログログインしている状態だと、認証ページが開かれません。もちろん、callbackへのリダイレクトもありません。

Qiitaにログインしていても、認証ページを開き、callbackへのリダイレクトをするにはどのような変更が必要なのでしょうか?

回答するにあたって必要な情報がありましたら、ご連絡ください。

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

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

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

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

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

perpouh

2018/09/20 03:04

/callbackのルーティングが見えないので記載漏れであれば記載してください。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

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

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

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問