React-native Log in with Facebook App 刷新应用

Posted

技术标签:

【中文标题】React-native Log in with Facebook App 刷新应用【英文标题】:React-native Log in with Facebook App refreshes 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")

【问题讨论】:

【参考方案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 代码

以上是关于React-native Log in with Facebook App 刷新应用的主要内容,如果未能解决你的问题,请参考以下文章

iOS 14.5 App Tracking Transparency for firebase log in react-native app

Fabric Log in with twitter 按钮显示为灰色

Can't locate Log/Dispatch.pm in @INC /Makefile out-of-date with respect to Makefile.PL

Appcenter Android Build for React-Native with Unity

React native with UWP - 如何设置 react-native UWP 环境?

console.log 不适用于 react-native