В настоящее время я делаю проект, использующий реагировать нативно, где я должен позволить пользователям войти в систему с помощью Facebook.Поэтому я использую компонент React-native-fbsdk LoginButton
, чтобы пользователи могли войти в систему и получить маркер доступа.Также часть проекта должна позволять пользователям делиться ссылками на свои профили.
Чтобы сделать это, я последовал за GitHub repo на Facebook, в котором говорится, как добавить ShareDialog.После добавления LoginButton
и ShareDialog
я запустил приложение.Вход прошел успешно, и я получил токен доступа.Но когда я пытаюсь поделиться ссылкой, он просит меня войти снова.Если я войду в систему с помощью ShareDialog, это позволит мне поделиться публикацией и всем, что и ожидалось.
Но если я выйду из системы с помощью LoginButton
и после входа в систему через ShareDialog, оба компонента выполнят успешный выход из системы.Проблема в том, что вход в систему не обрабатывает оба компонента при одном входе.
Ниже приведен мой код.
render() {
return (
<View style={styles.container}>
<LoginButton
publishPermissions={["publish_actions"]}
onLoginFinished={
(error, result) => {
if (error) {
alert("Login failed with error: " + error.message);
} else if (result.isCancelled) {
alert("Login was cancelled");
} else {
alert("Login was successful with permissions: " + result.grantedPermissions)
}
}
}
onLogoutFinished={() => alert("User logged out")}/>
<TouchableHighlight onPress={this.shareLinkWithShareDialog}>
<Text style={styles.shareText}>Share link with ShareDialog</Text>
</TouchableHighlight>
</View>
);
}
shareLinkWithShareDialog = () => {
const shareLinkContent = {
contentType: 'link',
contentUrl: 'https://www.sample.com/',
contentDescription: 'Test Sharing Description'
};
var tmp = this;
ShareDialog.canShow(shareLinkContent).then(
(canShow) => {
if (canShow) {
return ShareDialog.show(shareLinkContent);
}
}
).then(
(result) => {
if (result.isCancelled) {
alert('Share cancelled');
} else {
alert('Share success with postId: ' + result.postId);
}
},
(error) => {
alert('Share fail with error: ' + error);
}
);
}
Пожалуйста, помогите мне здесь.Я не могу определить, что с этим не так.
Примечание
Я проверил это с помощью Тестового пользователя Facebook, и у него также есть все соответствующие разрешения, включаяmanage_pages
и у тестового пользователя есть собственная Тестовая страница тоже.