29186


StackExchange APIに接続できません  
どうすればいいのでしょうか?

最初にブラウザから`https://stackexchange.com/oauth`に色々なクエリをつけてリクエストを出し、`Approve`ボタンを押すと、下記のエラーが発生します

[code]

    Application Login Failure
    
    An error occurred while login into an application.
    Error Details
    
    error description: Cannot return to provided redirect_uri
    
[/code]

redirect_uriは`http://127.0.0.1:8000/redirect`にしています  
私はOauth Domainを`localhost (127.0.0.1:8000)`にしています  
この方法で認証する場合にはドメインを持ったWebサーバが必要になるのでしょうか?


CC BY-SA 3.0
2016-09-25T14:02:16.947
29124
2016-09-27T13:29:48.810
2016-09-26T14:57:29.017
3054
5246
question
api oauth stackexchange-api
stackexchangeのAPI接続でApplication Login Failureになる


Web
Extensionでしたら[ドキュメント](https://api.stackexchange.com/docs/authentication)のデスクトップで使う場合の手順でいけると思います。implicit
flow（`https://stackexchange.com/oauth/dialog`）で`redirect_url`を`https://stackexchange.com/oauth/login_success`にすれば、リダイレクト後アドレスのハッシュにアクセストークンが入るはずです。  
またWeb ExtensionならStack
Exchangeが提供している[Javascriptのライブラリ](https://api.stackexchange.com/docs/js-
lib)が使えると思います。認証の機能しか無いので、inboxへのアクセスなどは自分でAPIを打たないといけませんが。

* * *

追記  
ブラウザで以下のアドレスにアクセスすると（idは伏せてます）

[code]

    https://stackexchange.com/oauth/dialog?client_id=1234&redirect_uri=https%3A%2F%2Fstackexchange.com%2Foauth%2Flogin_success
    
[/code]

承認するか確認され、承認後以下のアドレスに期待通り飛ばされました。

[code]

    https://stackexchange.com/oauth/login_success#access_token=aaaaaaaaaaaaaaaaaaaaaaaa&expires=12345
    
[/code]

StackAppでの設定：  
\- OAuth Domain： `stackexchange.com`  
\- [x] Enable Client Side OAuth Flow  
\- [ ] Disable Desktop Application OAuth Redirect Uri

Web Extensionでしたらこれをbackgroundページ内の`iframe`などでやればいけると思います。

* * *

追記  
backgroundページではログインできないのでダメですね...

[code]

    chrome.windows.create({'url': '...', 'type': 'popup'}, function(window) {
        ...
    });
    
[/code]

とかでポップアップを表示を表示して、URL移動を検知するって感じでいけそうな気はしますが試してません。


CC BY-SA 3.0
2016-09-27T12:41:48.853
29186
2016-09-27T13:29:48.810
2016-09-27T13:29:48.810
3974
3974
29124
answer