【问题标题】:React-native Log in with Facebook App refreshes appReact-native Log in with Facebook App 刷新应用
【发布时间】:2017-11-01 22:17:17
【问题描述】:

我正在使用 react-native-fbsdk 并且在 IOS 上。当用户使用 Facebook 登录时,他们可以按下两个按钮。 使用 Facebook 应用登录使用电话号码或电子邮件地址登录。使用电话号码或电子邮件地址登录非常有效,我获取了用户对象并为他们创建了一个用户帐户。但是当用户按下 使用 Facebook 应用程序登录 时,我不会收到用户对象,整个应用程序都会刷新,他们被推送到登录页面并且 Facebook 按钮已变为 退出。我不太确定如何解决这个问题,因为当用户使用 Facebook 应用程序登录时,我的 console.logs 或警报都没有被调用,整个应用程序只是刷新。任何帮助将不胜感激。

           <LoginButton
            readPermissions={["email","public_profile"]}
            onLoginFinished={
              (error, result) => {
                console.log("onLoginFinished: ", result);
                if (error) {
                  console.log("login has error: ", result.error);
                } else if (result.isCancelled) {
                  console.log("login is cancelled.");
                } else {
                  AccessToken.getCurrentAccessToken().then(
                    (data) => {
                      let accessToken = data.accessToken
                      console.log("accessToken.toString(): ", accessToken.toString())

                      const responseInfoCallback = (error, result) => {
                        if (error) {
                          console.log('Error fetching data: ', error)
                          //lert('Error fetching data: ' + error.toString());
                        } else {
                          console.log("responseInfoCallback:", result)
                          this.state.fbobj = result;
                          this.sendAjax();
                          //alert('Success fetching data: ' + result.toString());
                        }
                      }

                      const infoRequest = new GraphRequest(
                        '/me',
                        {
                          accessToken: accessToken,
                          parameters: {
                            fields: {
                              string: 'email,name'
                            }
                          }
                        },
                        responseInfoCallback
                      );

                      // Start the graph request.
                      new GraphRequestManager().addRequest(infoRequest).start()

                    }
                  )
                }
              }
            }
            onLogoutFinished={() => console.log("Logout")}

【问题讨论】:

    标签: facebook react-native react-native-fbsdk


    【解决方案1】:

    在你的按钮动作中,你需要这样的东西:

    import { LoginManager, AccessToken } from 'react-native-fbsdk'
    
    handlePressFacebookLogin = () => {
        LoginManager.logInWithReadPermissions(['public_profile', 'email']).then(
          (result) => {
            if (!result.isCancelled) {
              AccessToken.getCurrentAccessToken().then((data) => {
                console.log(data)
              })
            }
          }
        )
      }
    

    【讨论】:

    • 您好,感谢您的回复,我已经在上面添加了我的代码,我假设我的代码是错误的,因为我没有 LoginManager?
    • 你能用 Github 文档中的代码做一个测试吗? github.com/facebook/react-native-fbsdk
    • 在使用中,它说登录按钮+访问令牌,只需复制登录按钮中的代码并测试会发生什么
    • 页面仍然只是令人遗憾地刷新
    • 对于 Android 似乎可以工作,但对于 IOS 我相信不行,我会仔细检查我的 appdelegate.m 代码
    猜你喜欢
    • 1970-01-01
    • 2019-01-16
    • 2022-12-10
    • 2019-07-22
    • 2020-10-22
    • 2020-01-07
    • 1970-01-01
    • 2018-10-27
    • 1970-01-01
    相关资源
    最近更新 更多