-1
請給我的用戶選擇使用Facebook註冊。我如何檢索詳細信息並將其提供給我的服務器以供用戶註冊 。我正在使用api將用戶註冊到我的服務器。請幫助:獲取用戶的Facebook電子郵件和其他詳細信息
public class DashboardActivity extends AppCompatActivity {
private TextView loginView;
private LinearLayout signUpButtonParent, loginInButtonParent, signUpRoot, loginRoot;
private View loginBorder, signUpBorder;
private Button signUpWithEmailButton, loginWithEmailButton,loginFacebook;
LoginButton signUpFacebook;
private SharedPreferenceUtil sharedPreference;
private CallbackManager callbackManager;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_dashboard);
FacebookSdk.sdkInitialize(this);
callbackManager = CallbackManager.Factory.create();
signUpFacebook =(LoginButton) findViewById(R.id.facebookSignup);
loginFacebook =(Button) findViewById(R.id.loginFacebook);
signUpFacebook.setReadPermissions("email","user_photos","user_friends");
setupViews();
}
private void setupViews() {
final Typeface tf = Typeface.createFromAsset(getAssets(), "login_font.ttf");
loginView.setTypeface(tf);
signUpFacebook.setOnClickListener(view ->
LoginManager.getInstance().logInWithReadPermissions(DashboardActivity.this,Arrays.asList("public_profile", "email")));
signUpFacebook.registerCallback(callbackManager, new FacebookCallback<LoginResult>() {
@Override
public void onSuccess(LoginResult loginResult) {
startActivity(new Intent(DashboardActivity.this, MainActivity.class));
}
@Override
public void onCancel() {
Toast.makeText(DashboardActivity.this, "Login was Cancelled", Toast.LENGTH_SHORT).show();
}
@Override
public void onError(FacebookException error) {
Toast.makeText(DashboardActivity.this, "LogIn failed", Toast.LENGTH_SHORT).show();
}
});
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
callbackManager.onActivityResult(requestCode,resultCode,data);
}
}
接口:
public interface ApiService {
@FormUrlEncoded
@POST("signup")
Observable<StatusItem> signUp(@Field("full_name")String full_name, @Field("phone") String phone, @Field("email") String email, @Field("password") String password);
}
重要提示:刪除您的app_id。儘快重置。不要分享這個。 FacebookSdk.sdkInitialize(this); - 此功能已被棄用。 Facebook SDK現在在應用程序啓動時自動初始化。如果您在主進程中使用Facebook SDK並且不需要在SDK初始化完成時進行回調,則現在可以刪除對FacebookSDK.sdkInitialize的調用。如果您確實需要回調,則應該在代碼中手動調用回調。 除此之外,請分享您收到的錯誤以及更多關於這是幹什麼的信息以及它應該做什麼。 –