gpt4 book ai didi

ios - React native - fbsdk LoginManager 与 LoginButton

转载 作者:塔克拉玛干 更新时间:2023-11-02 22:14:15 26 4
gpt4 key购买 nike

我目前正在我的 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?

是否有首选方法?

最佳答案

我的理解是

当您使用 LoginButton 和 AccessToken 时,然后执行 GraphRequest

因此,您需要检查您的 AccessToken 是否为 nil 或者您的 currentToken 是否有效,如果您有 accessToken 那么您可以直接获取数据而无需单击 Facebook 按钮或登录按钮。因此,这意味着如果您不执行注销方法或卸载应用程序,您仍然可以通过图形请求仅借助您的 accessToken 来设法获取数据。

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

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

希望你能理解。
谢谢

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

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com