8
我試圖整合Facebook登錄我的Android應用程序。我在互聯網上發現了很多例子,但現在我遇到以下問題,找不到解決方案。Android的Facebook.authorize不要調用oncomplete方法
在facebook.authorize完成工作後,永不會調用oncomplete方法。 如果我使用facebook.authorize和Facebook.FORCE_DIALOG_AUTH,在這種情況下,oncomplete方法被調用,我可以保存access_token。 我附上了一段我的代碼。 任何人都可以幫我解決這個問題嗎?
if(!facebook.isSessionValid()) {
facebook.authorize(Login.this, new String[] {"publish_stream","read_stream", "offline_access"}, //Facebook.FORCE_DIALOG_AUTH,
new DialogListener() {
@Override
public void onComplete(Bundle values) {
SharedPreferences.Editor editor = mPrefs.edit();
editor.putString("access_token", facebook.getAccessToken());
editor.putLong("access_expires", facebook.getAccessExpires());
editor.commit();
}
@Override
public void onFacebookError(FacebookError error) {Log.e("FB:","Facebook Error");}
@Override
public void onError(DialogError e) {Log.e("FB:","Error");}
@Override
public void onCancel() {}
});
}
感謝 廝磨
嗨Alextsc,感謝您的答覆。我附加的代碼是用於登錄按鈕的onclicklistener方法。那麼我必須把onActivityResult放在哪裏呢?另外,爲什麼Facebook.FORCE_DIALOG_AUTH的所有功能都能正常運作? – Simone
'onActivityResult()'是你的Activity的一個方法*('onCreate()'等等也是活動方法)*。您可以將上面的代碼片段複製到活動課程中。我猜FORCE_DIALOG_AUTH的工作原理是因爲facebook使用了一種不同的機制而不是androids活動來將結果發回給回調(在這種情況下,我相信這是所有基於webview的)。如果你想對此有一個明確的答案,我推薦閱讀sdk代碼,因爲facebooks android sdk是開源的。 – 2011-12-11 20:30:30
感謝您的幫助alextsc。我終於解決了我的問題。非常感謝 – Simone