[英]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.