在android

时间:2016-12-07 00:29:17

标签: android instagram-api

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

1 个答案:

答案 0 :(得分:5)

我认为你可以使用他们的Client side (implicit) authentication。请查看本文末尾的部分。

  

用户通过身份验证后授权您的应用程序,   Instagram将其重定向到您的redirect_uri,其中包含access_token   网址片段。它看起来像这样:

     

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

     

简单地抓住   access_token关闭URL片段,你很高兴。如果是用户   选择不授权您的申请,您将收到相同的   显式流程中的错误响应。

关键部分是你来定义重定向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;
}

例如对于错误处理会有点痛苦,但是,如果他们有客户端身份验证,那么它也适用于你。