2016-12-07 53 views
4

我正在构建一个使用instagram API的android应用程序,我想知道是否有避免构建api(重定向uri)来处理来自instragram身份验证端点的重定向以进行令牌检索的解决方案Android客户端。在Android中集成instagram身份验证

回答

3

我认为你可以使用它们的Client side (implicit) authentication。检查文章结尾部分。

一旦用户通过身份验证,然后授权您的应用程序, 的Instagram其重定向到与 网址片段您的access_token REDIRECT_URI。它看起来是这样的:

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

只要抓住了 ACCESS_TOKEN关闭网址片段,你是好去。如果用户 选择不授权您的应用程序,您将收到与显式流程中相同的 错误响应。

的关键部分是,你定义重定向URI,但在这种情况下,它也没有有效。例如,如果您使用www.google.com作为重定向的URI,认证用户后,将会被重定向到

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

在这一点上,你必须让用户往前走。相反,需要捕获重定向并解析URI字符串,以便获得访问令牌。

如果你的导航的WebView内发生,这可能会在shouldOverrideUrlLoading()回调(从WebViewClient)发生:

@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