React Native Facebook SDK, случайный сбой входа - PullRequest
0 голосов
/ 03 декабря 2018

Я используюact-native-fbsdk 0.8.0 с React-Native 0.57.4 и получаю сообщение об ошибке:

Ошибка входа в систему: ошибка не может быть завершена.(com.facebook.sdk.login error 308).

примерно в 30% случаев.Я пробовал как с LoginButton, так и с LoginManager.

Также пробовал v0.9 и v0.7 response-native-fbsdk, с тем же результатом.

С LoginManager я пробовал LoginManager.Уловка logOut (), которую я видел, опубликованная другими (например, https://medium.com/@crysfel/error-when-login-with-facebook-sdk-react-native-c06a33078102)

У меня включена функция общего доступа к брелкам.

Я выполнил все инструкции на https://github.com/facebook/react-native-fbsdk включая настройку LSApplicationQueriesSchemes

Есть ли какие-либо предложения о том, что мне следует попробовать, если он работает нормально 2/3 раза?

Код моей кнопки входа в систему:

            <LoginButton
          style={[styles.button, styles.facebook]}
          readPermissions={[
            'public_profile',
            'user_birthday',
            'user_gender',
            'email'
          ]}
          onLoginFinished={(error, result) => {
            if (error) {
              alert('Login failed with error: ' + error.message);
            } else if (result.isCancelled) {
              alert('Login was cancelled');
            } else {
              // alert(
              //   'Login was successful with permissions: ' +
              //     result.grantedPermissions
              // );
              AccessToken.getCurrentAccessToken().then(data => {
                console.log(data.accessToken.toString());
                this.fetchProfile().then(profile =>
                  this.checkOrAddUser(profile)
                );
              });
            }
          }}
          onLogoutFinished={() => alert('User logged out')}
        />

Имой код LoginManager:

  handleLogin = () => {
    LoginManager.logInWithReadPermissions([
      'public_profile',
      'user_birthday',
      'user_gender',
      'email'
    ]).then(
      result => {
        if (result.isCancelled) {
          console.log(result);
          console.log('Login cancelled');
        } else {
          console.log(
            'Login success with permissions: ' +
              result.grantedPermissions.toString()
          );
          console.log('result is ' + result);
          AccessToken.getCurrentAccessToken().then(data => {
            console.log(data.accessToken.toString());
            this.fetchProfile().then(profile => this.checkOrAddUser(profile));
          });
        }
      },
      function(error) {
        console.log(error);
        console.log('Login fail with error: ' + error.message);
        LoginManager.logOut();
        alert('Login failed. Try again.');
      }
    );
  };

1 Ответ

0 голосов
/ 22 февраля 2019

Мне удалось решить эту проблему на iOS, выполнив шаги в конце этой темы: https://github.com/facebook/facebook-swift-sdk/issues/286

А именно, добавив эти строки в мой подфайл

pod 'FacebookSDK', :git => 'https://github.com/facebook/facebook-objc-sdk.git', :branch => 'master'
pod 'FBSDKCoreKit', :git => 'https://github.com/facebook/facebook-objc-sdk.git', :branch => 'master'
pod 'FBSDKShareKit', :git => 'https://github.com/facebook/facebook-objc-sdk.git', :branch => 'master'
pod 'FBSDKLoginKit', :git => 'https://github.com/facebook/facebook-objc-sdk.git', :branch => 'master'

иудалив файлы FBSDK .framework, которые я вручную добавил в раздел «Связать двоичные файлы с библиотеками», запустив «pod install», затем очистив папку сборки и производных данных.

...