Facebook登录Android取消
我想在Android应用程序中登录Facebook,在我收到的日志中取消。这就是代码,有什么想法吗 我按照developers.facebook.com的指示,尝试使用一个片段进行登录Facebook登录Android取消,android,facebook,facebook-graph-api,facebook-login,facebook-sdk-4.0,Android,Facebook,Facebook Graph Api,Facebook Login,Facebook Sdk 4.0,我想在Android应用程序中登录Facebook,在我收到的日志中取消。这就是代码,有什么想法吗 我按照developers.facebook.com的指示,尝试使用一个片段进行登录 public class LoginFragment extends Fragment { public static final String TAG = LoginFragment.class.getSimpleName(); private CallbackManager callbackManager
public class LoginFragment extends Fragment {
public static final String TAG = LoginFragment.class.getSimpleName();
private CallbackManager callbackManager;
private ProfileTracker profileTracker;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
FacebookSdk.sdkInitialize(getActivity().getApplicationContext());
setUpCallbacks();
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// Inflate the layout for this fragment
View view = inflater.inflate(R.layout.fragment_login, container, false);
LoginButton loginButton = (LoginButton) view.findViewById(R.id.facebook_button_login);
loginButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
final LoginManager manager = LoginManager.getInstance();
manager.setLoginBehavior(LoginBehavior.SSO_WITH_FALLBACK);
manager.logInWithReadPermissions(LoginFragment.this, null);
}
});
return view;
}
private void setUpCallbacks() {
callbackManager = CallbackManager.Factory.create();
LoginManager manager = LoginManager.getInstance();
manager.registerCallback(callbackManager, new FacebookCallback<LoginResult>() {
@Override
public void onSuccess(LoginResult loginResult) {
Profile.fetchProfileForCurrentAccessToken();
Log.d(TAG, "success");
}
@Override
public void onError(FacebookException exception) {
AccessToken.setCurrentAccessToken(null);
Log.d(TAG, "error");
}
@Override
public void onCancel() {
AccessToken.setCurrentAccessToken(null);
Log.d(TAG, "cancel");
}
});
profileTracker = new ProfileTracker() {
@Override
protected void onCurrentProfileChanged(Profile oldProfile, Profile currentProfile) {
AccessToken currentAccessToken = AccessToken.getCurrentAccessToken();
if (currentAccessToken == null) {
Log.d(TAG, "AccessToken is null");
}
else {
Log.d(TAG, currentProfile.getName());
}
}
};
}
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
callbackManager.onActivityResult(requestCode, resultCode, data);
}
}
谢谢。登录按钮的用法如下:
LoginButton loginButton = (LoginButton) findViewById(R.id.login_button);
loginButton.setReadPermissions(Arrays.asList("user_friends, public_profile, email, user_birthday"));
loginButton.registerCallback(callbackManager, new FacebookCallback<LoginResult>() {
@Override
public void onSuccess(LoginResult loginResult) {
}
@Override
public void onCancel() {
}
@Override
public void onError(FacebookException e) {
}
});
您的登录按钮是SDK提供的吗?如果是这样,您不需要添加LoginManager内容,因为它已经为您完成了登录。