-1
내 사용자에게 페이스 북으로 가입 옵션을 제공하고 싶습니다. 내 세부 정보를 검색하고 사용자의 등록을 위해 내 서버에 피드하는 방법은 입니다. api를 사용하여 사용자를 내 서버에 등록하고 있습니다. 도와주세요 :사용자의 페이스 북 이메일 및 기타 정보 얻기
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에 대한 호출을 제거 할 수 있습니다. 콜백이 필요한 경우 코드에서 콜백을 수동으로 호출해야합니다. 그 외에도 현재 받고있는 오류와 수행 한 오류에 대한 정보를 공유하십시오. –