我目前正在我的 react 本机应用程序中实现一个 Facebook 登录按钮。用户成功登录后,我会获取一些信息,名字、姓氏和电子邮件地址。
阅读 SDK 文档和在线示例后,我可以看到两种不同的方法来实现这一点:
使用 LoginButton & AccessToken 然后执行 GraphRequest
使用 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 的在线示例也获取当前令牌:AccessToken.getCurrentAccessToken().then(...)
使用 LoginManager,我设法在无需使用 AccessToken 的情况下获取用户信息 - LoginManager 在幕后调用 AccessToken 吗?
有首选方法吗?