2016-12-07 52 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