2016-12-07 5 views
4

私はinstagram APIを使用するアンドロイドアプリケーションを構築しています。私は、instragram認証エンドポイントからのリダイレクトを処理するapi(リダイレクトuri)を避けるソリューションがあるかどうかを知りたいと思います。アンドロイドクライアント。androidでのInstagram認証の統合

答えて

3

私はあなたが彼らのClient side (implicit) authenticationでそれを作ることができると思います。記事末尾のセクションを確認してください。

ユーザーが認証してから、アプリケーションを承認した後、 Instagramのは URLフラグメントでaccess_tokenはをごREDIRECT_URIにリダイレクトします。それは次のようになります。

http://your-redirect-uri#access_token=ACCESS-TOKEN

は、単にURLフラグメントオフ access_tokenはをつかむ、あなたが行ってもいいです。ユーザー がアプリケーションを承認しないことを選択した場合、明示的なフローと同じエラー応答が返されます( )。

は、重要な部分は、あなたがリダイレクトURIを定義するを持っているということですが、この場合には有効であるとされていません。あなたが認証ユーザーの後、リダイレクトURIとしてwww.google.comを使用している場合たとえば、この時点で

http://www.google.com#access_token=ACCESS-TOKEN

にリダイレクトされます、あなたはユーザーが前方に行かせないなければなりません。代わりに、リダイレクトをキャッチしてURI文字列を解析して、アクセストークンを持つことができます。あなたのナビゲーションはWebViewの内部で発生した場合

することは、これはおそらく(WebViewClientから)shouldOverrideUrlLoading()コールバックで発生します:

@Override 
public boolean shouldOverrideUrlLoading(WebView view, String url) { 
    if (url.startsWith("http://www.google.com") { // redirect uri! 
     String accessToken = ... // get token from url 
     return true; // don’t load the page 
    } 
    return false; 
} 

彼らが持っている場合には、エラー処理のために、たとえば、多少痛みを伴うことが、ちょっとしますクライアント側の認証、それはあなたのためにも動作するはずです。

+0

これは大変感謝しています – zeddysoft

+0

あなたは@zeddysoftを歓迎します。 – natario

関連する問題