我想使用Facebook SDK 3.0檢索按鈕上的訪問令牌按我的Android應用程序。我在我的活動,是做一個通用按鈕如下:Android的Facebook SDK3.0,會話狀態開放
Button facebook = (Button)findViewById(R.id.facebookLoginButton);
facebook.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
Session session = new Session(getApplicationContext());
Session.setActiveSession(session);
session.openForRead(new Session.OpenRequest(SignInActivity.this).setCallback(statusCallback));
}
});
然後回調:
private class FacebookSessionStatusCallback implements Session.StatusCallback {
@Override
public void call(Session session, SessionState state, Exception exception) {
String s=session.getAccessToken();
}
}
點擊該按鈕會提示我要我的權限來訪問我的個人資料如預期,但該只有SessionState被稱爲「OPENING」纔會調用回調函數。之後這個狀態不會改變。
我在這裏錯過了什麼?我的最終目標實際上只是一次獲取訪問令牌,而我並不在乎持久會話或使用它登錄到我的應用程序。
這是一個快速修復,謝謝!快速跟進問題 - 如何設置requestCode以便我可以檢查它是否來自Facebook或不在onActivityResult? –
請參閱https://developers.facebook.com/docs/reference/android/3.0/Session.OpenRequest,但您可以這樣做:session.openForRead(new Session.OpenRequest(SignInActivity.this).setCallback(statusCallback).setRequestCode (200));然後在這個例子中檢查代碼200。 –
@CAbernathy:保存了我的一天... +1。 – Anukool