• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

ios - react 原生 - fbsdk LoginManager 与 LoginButton

[复制链接]
菜鸟教程小白 发表于 2022-12-11 19:02:31 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题

我目前正在我的 react native 应用程序中实现一个 Facebook 登录按钮。用户成功登录后,我会获取一些信息,名字、姓氏和电子邮件地址。

阅读 SDK 文档和在线示例后,我可以看到实现此目的的两种不同方法:

  1. 使用 LoginButton 和 AccessToken 然后执行 GraphRequest

  2. 使用 LoginManager 然后执行 GraphRequest(我选择的方法):

    class LoginView extends Component {
        _fbAuth = () => {
            LoginManager.logInWithReadPermissions(['public_profile','email']).then(function(result){
                if(result.isCancelled){
                    console.log('loging cancelled')
                }
                else {
                    console.log('login success' + result.grantedPermissions)
    
                    const infoRequest = new GraphRequest('/me', {
                        parameters: {
                            'fields': {
                                'string' : 'email,first_name,last_name,picture'
                            }
                        }
                    }, (err, res) => {
                        console.log(err, res);
                    });
                    new GraphRequestManager().addRequest(infoRequest).start();
    
                }
            }, function(error){
                console.log('An error occured: ' + error)
            })
        }
    
        render(){
            return (
                <TouchableHighlight style={{flex:1}} onPress={() => {this._fbAuth()}}>
                    <View style={styles.container}>
                        <View style={styles.buttonContainer}>
                            <Text style={{flex:1}}>Login with Facebook</Text>
                        </View>
                    </View>
                </TouchableHighlight>
            )
        }
    }
    

LoginManager 和 LoginButton 的主要区别是什么?

LoginButton的在线示例也获取当前token:AccessToken.getCurrentAccessToken().then(...)

通过 LoginManager,我无需使用 AccessToken 就可以获取用户信息 - LoginManager 是否在后台调用 AccessToken?

有首选方法吗?



Best Answer-推荐答案


我的理解是

当你使用 LoginButton & AccessToken 然后做一个 GraphRequest

因此,您需要检查您的 AccessToken 是否为 nil 或您的 currentToken 是否有效,如果您有 accessToken 则无需单击 Facebook 按钮或登录按钮即可直接获取数据。因此,这意味着如果您不执行注销方法或卸载应用程序,您仍然可以通过使用 Graph Request 的 accessToken 来获取数据。

现在,当您使用 LoginManager 然后执行 GraphRequest

因此,这种方法每次都将您带到 Safari 以进行 facebook 应用程序的自动化过程。 LoginManager 通常每次在 Safari 中打开 Facebook,然后返回应用程序并提供数据。

希望你能理解。
谢谢

关于ios - react 原生 - fbsdk LoginManager 与 LoginButton,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42356980/

回复

使用道具 举报

懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关注0

粉丝2

帖子830918

发布主题
阅读排行 更多
广告位

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap