使用react-native facebook SDK获取用户app令牌

时间:2015-08-31 20:02:16

标签: facebook react-native react-native-fbsdk

我使用新的https://github.com/facebook/react-native-fbsdk让facebook登录工作,但我似乎无法获得通常在响应中返回的用户令牌。有人找到了获取此信息的方法吗?另一个SDK的https://github.com/magus/react-native-facebook-login在登录请求中返回它,但新的FB sdk没有,并且github页面上的文档在任何地方都没有提及。

2 个答案:

答案 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())
})