undefined不是对象(评估FBSDKAccessTokenInterface.getCurrentAccessToken)

时间:2016-07-28 02:43:41

标签: android react-native fbsdk react-native-fbsdk

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

我按Facebook的建议调用核心:

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

在一个场景中,我尝试按照此处所述的类似问题的建议在日志中写入令牌。

<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>

这给了我redscreen&#34; undefined不是一个对象(评估FBSDKAccessTokenInterface.getCurrentAccessToken)

尝试在应用程序的其他部分启动similair,当然首先定义const FBSDKAccessToken,然后调用userID(应该是FBSDKCore的一部分):

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

什么都不产生,我相信它会返回登录用户的userID。另外,如果我尝试在同一个地方写出:accessstoken:

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

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

我试图查看图书馆的链接,但这甚至引起了进一步的问题。

因此,从此,我陷入困境,我真的很感激对错误的反馈。

1 个答案:

答案 0 :(得分: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