在android中集成instagram身份验证

zed*_*oft 5 android instagram-api

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

nat*_*rio 5

我认为你可以使用他们的客户端(隐式)身份验证.请查看本文末尾的部分.

一旦用户通过身份验证然后授权您的应用程序,Instagram就会使用url片段中的access_token将它们重定向到您的redirect_uri.它看起来像这样:

HTTP://您的重定向的URI#=的access_token ACCESS-TOKEN

只需从URL片段中获取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;
}
Run Code Online (Sandbox Code Playgroud)

例如,对于错误处理,这会有点痛苦,但是,如果他们有客户端身份验证,它也应该对你有用.