undefined не является объектом (оценка FBSDKAccessTokenInterface.getCurrentAccessToken)
У меня проблемы с моей способностью получить AccessToken в fbsdk в React Native.
Я называю ядро в соответствии с предложением Facebook:
const FBSDKCore = require('react-native-fbsdkcore');
const {
FBSDKAccessToken,
} = FBSDKCore;
И в одном сценарии я пытаюсь записать токен в журнал, как это было предложено в similair вопросе, изложенном здесь на 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>
Это дает мне красный экран "undefined не является объектом (оценка FBSDKAccessTokenInterface.getCurrentAccessToken)
Попытка выполнить что-то похожее в других частях приложения, конечно, сначала определив const FBSDKAccessToken, затем вызвав userID (который должен быть частью FBSDKCore) как:
<Text style={{fontSize: 18, color:colors.General.navtext}}>{FBSDKAccessToken.userID}</Text>
Ничего не дает, где я считал, чтобы вернуть userID вошедшего в систему пользователя. Кроме того, если я попытаюсь записать токен доступа в том же месте, что и:
<Text style={{fontSize: 18, color:colors.General.navtext}}>{FBSDKAccessToken.getCurrentAccessToken()}</Text>
Я получаю такой же красный экран, как и раньше.
Я пытался взглянуть на связывание библиотек, но это даже вызвало дальнейшую проблему.
Следовательно, от этого я довольно застрял, и я был бы очень признателен за отзывы о том, что пошло не так.
1 ответ
У меня также были проблемы с FBSDKCore. Исправлено с помощью response-native-fbsdk
const FBSDK = require('react-native-fbsdk');
const {
AccessToken,
} = FBSDK;
Вы дважды проверили эти шаги, упомянутые на Facebook:
- Убедитесь, что фреймворки Facebook SDK установлены в ~/Documents/FacebookSDK.
- Убедитесь, что FBSDK[Core, Login, Share]Kit.framework отображается в разделе "Связать двоичные файлы с библиотеками" на этапах сборки объекта сборки.
- Убедитесь, что ~ / Documents / FacebookSDK находится в Путь поиска фреймворка в настройках сборки целевого объекта сборки.