[英]How can I login facebook with my own button? (Facebook SDK 4.0)
我想创建自己的按钮来登录Facebook。 该按钮的功能是:
1 /如果用户已经通过Facebook应用程序登录了Facebook,那么当他们单击我的应用程序中的按钮时,他们也将登录我的应用程序。 (它不得强迫他们再次登录Facebook)。
2 /如果用户未登录,则会显示此屏幕进行登录。 http://a5e2fba00d8bcb729d89839f.javacodegeeks.netdna-cdn.com/wp-content/uploads/2014/12/app_credentials.png
看来我在Facebook SKD 4.0及更高版本中找不到任何教程来做到这一点。 我不能使用其他教程,因为“会话”已被弃用。
请告诉我该怎么做。 先感谢您!
如果用户已经通过Facebook应用程序登录了Facebook,那么当他们单击我的应用程序中的按钮时,他们也将在我的应用程序中登录
如果用户使用Facebook登录,将Facebook ID和Facebook令牌发送到您的服务器,则服务器可以从Facebook获取其余的详细信息,在服务器上创建一个帐户并将其与Facebook(id)帐户关联。
如果用户使用您的帐户登录,则他使用Facebook登录,将您的帐户ID,Facebook ID和Facebook令牌发送到服务器并链接两个帐户。
如果用户未登录,则会显示此屏幕进行登录。
Facebook登录:请参见下面的代码,有关详细信息, 请单击此处
@Override
public View onCreateView(
LayoutInflater inflater,
ViewGroup container,
Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.splash, container, false);
//Initialize facebook
FacebookSdk.sdkInitialize(getApplicationContext());
loginButton = (Button) view.findViewById(R.id.login_button);
loginButton.setOnClickListener(new OnClickListener() {
@Override public void onClick(View v) {
//Login with facebook on clicking custom button
LoginManager.getInstance().logInWithReadPermissions(this, Arrays.asList("public_profile", "user_friends"));
}
});
//Register a callback
callbackManager = CallbackManager.Factory.create();
LoginManager.getInstance().registerCallback(callbackManager,
new FacebookCallback<LoginResult>() {
@Override
public void onSuccess(LoginResult loginResult) {
// login successful
}
@Override
public void onCancel() {
// login cancelled
}
@Override
public void onError(FacebookException exception) {
// login error
}
});
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
callbackManager.onActivityResult(requestCode, resultCode, data);
}
除了此代码,您还必须创建一个
Facebook提供了有关如何执行此操作的非常详细的指南: https : //developers.facebook.com/docs/facebook-login/android/v2.3
本质上,您必须首先注册Login回调:
LoginManager.getInstance().registerCallback(callbackManager,
new FacebookCallback<LoginResult>() {
@Override
public void onSuccess(LoginResult loginResult) {
//app code
}
@Override
public void onCancel() {
//app code
}
@Override
public void onError(FacebookException exception) {
//app code
}
});
然后,当您要登录用户时,请致电:
LoginManager.getInstance().logInWithPublishPermissions(
this,
Arrays.asList(PERMISSION));
当然,代码和AndroidManifest.xml中都有设置以正确设置和初始化Facebook SDK,在上面的链接中对此进行了详细介绍。
还要查看Facebook Android SDK随附的/ samples / HelloFacebookSample示例应用程序,您可以轻松地使其适应您的需求。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.