2016-02-12 138 views
3

與instagram api進行連接,我不明白我應該爲重定向api放置什麼。目前我只是在https://127.0.0.1Android重定向uri

但我真的不明白。另外,一旦我得到允許/取消屏幕,我按下允許它給了我一個錯誤,說我不能去那個地址,但我也可以看到授權碼附加到地址。那麼我怎麼能從我的重定向uri重定向回來?我怎麼能告訴android,用戶點擊後允許回到應用程序使用代碼進一步認證?

我確定你會說一些像我自己的自定義方案/意圖過濾器等,但請稍微支持我新的,我不明白,我做了他們的研究。

我的簡歷的方法是低於

@Override 
    protected void onResume() { 
     super.onResume(); 

     // the intent filter defined in AndroidManifest will handle the return from ACTION_VIEW intent 
     Uri uri = getIntent().getData(); 
     if (uri != null && uri.toString().startsWith(redirectUri)) { 
      // use the parameter your API exposes for the code (mostly it's "code") 
      String code = uri.getQueryParameter("code"); 
      if (code != null) { 
       // get access token 
       LoginService loginService = 
         ServiceGenerator.createService(LoginService.class, clientId, clientSecret); 
       AccessToken accessToken = loginService.getAccessToken(code, "authorization_code"); 
      } else if (uri.getQueryParameter("error") != null) { 
       // show an error message here 
      } 
     } 
    } 

This is my manifest snippet dealing with intent filters 


     <activity 
      android:name=".LoginActivity" 
      android:label="@string/title_activity_login" > 
      <intent-filter> 
       <action android:name="android.intent.action.VIEW" /> 
       <category android:name="android.intent.category.DEFAULT" /> 
       <category android:name="android.intent.category.BROWSABLE" /> 
       <data 
        android:host="redirecturi" 
        android:scheme="your" /> 
      </intent-filter> 
     </activity> 

回答

2

你不得不安裝在瀏覽器上查看事件監聽器,並在網址PARAM檢查code如果URL等於REDIRECT_URI,然後進行POST請求如記錄使用codeclient_secret的驗證網址在Instagram的認證

是這樣的:

webView.setWebViewClient(new WebViewClient() { 
    public void onPageFinished(WebView view, String url) { 
     String code = url.getQueryParameter("code"); 
     // ... 
    } 
}); 
+0

到底是如何做到的?我張貼我的簡歷下面以及我的清單片段讓你看看。 –

+0

也是我的重定向uri?當我註冊我的應用程序 –

+0

時,我可以放什麼東西嗎?我還註冊了另一個應用程序,並將我自己的網站作爲重定向URI。果然這次它使用code參數重定向回mywebsite。唯一的問題是我不想去我的網站,我希望它回到應用程序。 –