0

我无法在 React Native 的 fbsdk 中获取 AccessToken。

我按照 Facebook 的建议调用核心:

const FBSDKCore = require('react-native-fbsdkcore');
const {
  FBSDKAccessToken,
} = FBSDKCore;

在一种情况下,我尝试按照此处关于 SO 的类似问题的建议在日志中写入令牌。

<View>
    <View style={{flex: 1, alignItems: 'center', padding: 50, marginTop: 250}}>
    <View> 
      <LoginButton
        publishPermissions={["publish_actions"]}
        onLoginFinished={
          (error, result) => {
            if (error) {
              alert("login has error: " + result.error);
            } else if (result.isCancelled) {
              alert("login is cancelled.");
            } else {
              FBSDKAccessToken.getCurrentAccessToken((token)=> {
                    console.log(token);
                  });                          
              Actions.Navigator()
            }
          }
        }
        onLogoutFinished={() => {
          alert("logout.")}}/>
    </View>
    </View>
</View>

这给了我红屏“未定义不是对象(评估 FBSDKAccessTokenInterface.getCurrentAccessToken)

尝试在应用程序的其他部分实现类似的东西,当然首先定义 const FBSDKAccessToken,然后调用 userID(它应该是 FBSDKCore 的一部分)为:

<Text style={{fontSize: 18, color:colors.General.navtext}}>{FBSDKAccessToken.userID}</Text>

什么都没有,我相信它会返回登录用户的用户 ID。另外,如果我尝试在同一个地方写出访问令牌:

<Text style={{fontSize: 18, color:colors.General.navtext}}>{FBSDKAccessToken.getCurrentAccessToken()}</Text>

我得到和以前一样的红屏。

我试图查看库的链接,但这甚至导致了进一步的问题。

因此,从这一点来看,我很困惑,我真的很感激一些关于哪里出了问题的反馈。

4

1 回答 1

0

我也遇到了 FBSDKCore 的问题。通过使用 react-native-fbsdk 修复它

const FBSDK = require('react-native-fbsdk');
const {
  AccessToken,
} = FBSDK;

您是否仔细检查了 facebook 提到的这些步骤:

  • 确保 Facebook SDK 框架安装在 ~/Documents/FacebookSDK 中。
  • 确保 FBSDK[Core, Login, Share]Kit.framework 出现在构建目标构建阶段的 Link Binary with Libraries 部分中。
  • 确保 ~/Documents/FacebookSDK 位于构建目标的构建设置的框架搜索路径中。

https://github.com/facebook/react-native-fbsdk

于 2016-09-19T13:40:28.723 回答