2013-01-03 134 views
0

我有一個適用於我的大學的應用程序,並且我已經整合了Facebook SDK,以便學生可以在Facebook上發帖。使用SDK 3.0的Facebook授權問題

最近我決定做一些更多的測試,因爲Facebook發佈了新的SDK。我發現它是由Facebook Sdk出現的Custom Dialog出現後給用戶所需權限的信息,沒有任何反應。

這促使我更深入地搜索問題。我打開了一個模擬器並檢查了它,經過一些錯誤和分鐘後,我設法讓SSO工作。同樣的代碼也應該在我的設備上工作,但上述問題再次發生。

雖然我沒有運氣。然後我想到從我的手機中刪除Facebook應用程序並再次嘗試我的應用程序。這次SSO在模擬器中運行良好。

所以我搜索後遇到了問題和結果。我完全確定在安裝Facebook應用程序和我的應用程序之間有授權問題,但我找不到。

如果其他人遇到同樣的問題,請分享您的想法,如果有人知道任何解決方案,我會很好!

問題:Google根本沒有幫我。你是我最後的機會。

我的方式與Facebook連接:

Session session = Session.openActiveSession(act, true, 
      new StatusCallback() { 
       public void call(final Session session, SessionState state, 
         Exception exception) { 
        if (session.isOpened()) { 
         Log.d("Session is:", " opened"); 
         Request.executeMeRequestAsync(session, 
           new Request.GraphUserCallback() { 
            public void onCompleted(GraphUser user, 
              Response response) { 
             if (user != null) { 
//my code goes here           

             } 
            } 
           }); 
        } 
       } 
      }); 

回答

1

UPDATE

我終於通過更新keyhash解決。不知道爲什麼這個問題,但現在它工作正常!

+0

調試和發佈(設備)是不同的。你可以在你的fb儀表板中包括鑰匙 –

+0

你能解釋一下你的評論嗎? – Pavlos

+0

在仿真器和實際設備上進行測試的keyhashes是不同的。一個不爲另一個工作。 ü需要生成2個keyhashes,每一個和更新相同的FB儀表板在同一個應用程序 –

0

只是爲了提的緣故,使用此代碼找到實際keyhash:

PackageInfo info; 
try { 
info = getPackageManager().getPackageInfo("com.myname.lolo", PackageManager.GET_SIGNATURES); 
for (Signature signature : info.signatures) { 
      MessageDigest md; 
md = MessageDigest.getInstance("SHA"); 
md.update(signature.toByteArray()); 
      //String something = new String(Base64.encode(md.digest(), 0)); 
      * String something = new String(Base64.encodeBytes(md.digest())); 
      Log.e("hash key", something); 
} 
} 
catch (NameNotFoundException e1) { 
Log.e("name not found", e1.toString()); 
} 

catch (NoSuchAlgorithmException e) { 
Log.e("no such an algorithm", e.toString()); 
} 
catch (Exception e){ 
Log.e("exception", e.toString()); 
} 

您可以稍後刪除此代碼。並且所有這些信用:Key hash for Android-Facebook app