这是我对新 Facebook SDK 4.1 的有效集成。
首先你需要在 4.1 中初始化 SDK ///
/** if face book SDK is not initialized then initialized.*/
if(!FacebookSdk.isInitialized())
FacebookSdk.sdkInitialize(BaseActivity.this);
现在你需要回调管理器
/** create face book callback factory.*/
if(null == callbackManager)
callbackManager = CallbackManager.Factory.create();
这些是回调。
public final FacebookCallback<LoginResult> _mcallbackLogin = new FacebookCallback<LoginResult>() {
@Override
public void onSuccess(LoginResult loginResult) {
if(loginResult.getAccessToken() != null){
Log.i("TAG", "LoginButton FacebookCallback onSuccess token : "+ loginResult.getAccessToken().getToken());
GraphRequest.newMeRequest(AccessToken.getCurrentAccessToken(), new GraphJSONObjectCallback() {
@Override
public void onCompleted(JSONObject object, GraphResponse response) {
if(null != object){
Log.e("TAG", object.optString("name"),object.optString("first_name"),object.optString("email"),false).execute();
}
}
}).executeAsync();
}
}
@Override
public void onCancel() {
Log.e("TAG", "LoginButton FacebookCallback onCancel");
}
@Override
public void onError(FacebookException exception) {
Log.e("TAG","Exception:: "+exception.getStackTrace());
}
};
现在您需要在 facebook 登录按钮上注册回调
loginBtn.registerCallback(BaseActivity.callbackManager,_mcallbackLogin);