我使用新的https://github.com/facebook/react-native-fbsdk让facebook登录工作,但我似乎无法获得通常在响应中返回的用户令牌。有人找到了获取此信息的方法吗?另一个SDK的https://github.com/magus/react-native-facebook-login在登录请求中返回它,但新的FB sdk没有,并且github页面上的文档在任何地方都没有提及。
答案 0 :(得分:11)
经过多次挖掘后找到答案。您需要使用fbsdkcore来访问用户令牌。下面是你如何使用它。
var FBSDKCore = require('react-native-fbsdkcore');
var {
FBSDKAccessToken,
} = FBSDKCore;
var Login = React.createClass({
render: function() {
return (
<View>
<FBSDKLoginButton
onLoginFinished={(error, result) => {
if (error) {
alert('Error logging in.');
} else {
if (result.isCanceled) {
alert('Login cancelled.');
} else {
FBSDKAccessToken.getCurrentAccessToken((token) => {
console.log(token.tokenString);
})
}
}
}}
onLogoutFinished={() => console.log('Logged out.')}
readPermissions={[]}
publishPermissions={['publish_actions']}/>
</View>
);
}
});
答案 1 :(得分:1)
您不需要第三方模块 (react-native-fbsdkcore
)
软件包 (react-native-fbsdk
) 在其 Github 页面上有说明:https://github.com/facebook/react-native-fbsdk#usage
用户登录后,您可以按如下方式获取访问凭据:
import { AccessToken } from 'react-native-fbsdk';
AccessToken.getCurrentAccessToken().then(data => {
console.log(data.accessToken.toString())
})