我正在构建一个使用instagram API的Android应用程序,我想知道是否有一个解决方案可以避免构建api(重定向uri)来处理来自instragram身份验证端点的重定向,以便为android客户端进行令牌检索
答案 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,则在将身份验证用户重定向到
此时,您必须不让用户继续前进。相反,捕获重定向并解析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;
}
例如对于错误处理会有点痛苦,但是,如果他们有客户端身份验证,那么它也适用于你。