Я создаю приложение, в котором я хочу интегрировать facebook sdk
. Я хочу войти в систему с помощью пользователя facebook
, но это создает проблему.Интеграция Facebook с пользовательской кнопкой
Он работает только один раз. Если я установил приложение и запустил его с помощью facebook
, он работает, но когда я удалю свое приложение и попытаюсь установить его и снова войти с помощью facebook
, он не работает. Он не просит access permission
и ничего не делает.
Я хочу задать еще один вопрос, хочу сделать пользовательскую кнопку входа в систему facebook и после успешного входа в систему перейти к следующему Activity
.
Вот что я уже сделал. Я не знаю, где ошибка?
Вот мой главный XML:
<ImageButton
android:id="@+id/btnFblogin"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@null"
android:onClick="onClick"
android:src="@drawable/fb_signin" />
<com.facebook.login.widget.LoginButton
android:id="@+id/fb_login_button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:visibility="gone"
Вот мой фрагмент:
public View onCreateView(LayoutInflater inflater, ViewGroup container,Bundle savedInstanceState) {
FacebookSdk.sdkInitialize(getApplicationContext());
callbackManager = CallbackManager.Factory.create();
btnFbLog = (ImageButton) view.findViewById(R.id.btnFblogin);
btnFbLog.setOnClickListener(this);
return view;}
public void onClick(View v) {
switch (v.getId()) {
case R.id.btnFblogin:
mSignInClicked = true;
Toast.makeText(getApplicationContext(), "Clicked on facebook login", Toast.LENGTH_SHORT).show();
fbloginButton.registerCallback(callbackManager, new FacebookCallback<LoginResult>() {
@Override
public void onSuccess(LoginResult loginResult) {
//updateFacebookButtonUI();
Profile profile = Profile.getCurrentProfile();
loginSocial(profile.getId(), Const.SOCIAL_FACEBOOK);
}
@Override
public void onCancel() {
}
@Override
public void onError(FacebookException error) {
}
});
public void onActivityResult(int requestCode, int responseCode, Intent data) {
super.onActivityResult(requestCode, responseCode, data);
callbackManager.onActivityResult(requestCode, responseCode, data);
private void loginSocial(String id, String loginType) {
if (!AndyUtils.isNetworkAvailable(activity)) {
AndyUtils.showToast(getResources().getString(R.string.no_internet),
activity);
return;
}
AndyUtils.showCustomProgressDialog(activity,
getResources().getString(R.string.text_signin), false, null);
HashMap<String, String> map = new HashMap<String, String>();
map.put(Const.URL, Const.ServiceType.LOGIN);
map.put(Const.Params.SOCIAL_UNIQUE_ID, id);
map.put(Const.Params.DEVICE_TYPE, Const.DEVICE_TYPE_ANDROID);
map.put(Const.Params.DEVICE_TOKEN,
new PreferenceHelper(activity).getDeviceToken());
map.put(Const.Params.LOGIN_BY, loginType);
new HttpRequester(activity, map, Const.ServiceCode.LOGIN, this);
}
У вас есть facebook приложение установлено на телефоне? Можете ли вы воспроизвести вопрос, когда он не установлен? –
Да, facebook установлен на моем устройстве – user7108398
Вы смотрите в 'onError (..)'? –