【发布时间】:2017-04-15 08:53:19
【问题描述】:
在我的 react native 应用程序中,我通过 facebook 处理用户帐户。我已成功将 Facebook SDK 连接到我的应用程序,并且成功显示“使用 Facebook 登录”按钮,当点击该按钮时,用户可以使用 Facebook 登录并将按钮文本更改为“注销”。如果用户点击“注销”,则会将其注销并将文本更改回登录。基本上,我似乎具有登录和注销工作的基本功能。
关于用户是否登录 Facebook 的状态,我有几个问题。
一方面,用户的登录似乎不会在应用生命周期之间持续存在。如果我关闭应用程序并重新打开它,它会提示我再次登录,而不是记住我刚刚登录并自动使用 Facebook 登录。有没有办法告诉它通过 FacebookSDK 轻松执行此操作/缓存登录?我想肯定有,但 Facebook 的文档似乎很少。
此外,有没有办法通过布尔属性或仅表示用户是否登录的内容来检查用户现在的状态。
下面是我当前的代码,它成功地显示了 Facebook 登录和注销按钮以及处理登录和注销流程。
/**
* Sample React Native App
* https://github.com/facebook/react-native
* @flow
*/
import React, { Component } from 'react';
import {
AppRegistry,
StyleSheet,
Text,
View
} from 'react-native';
const FBSDK = require('react-native-fbsdk');
const {
LoginButton,
AccessToken,
GraphRequest,
GraphRequestManager,
} = FBSDK;
export default class FBReact extends Component {
render() {
return (
<View>
<Text style={styles.welcome}>
Welcome to React Native!
</Text>
<Text style={styles.instructions}>
To get started, edit index.ios.js
</Text>
<Text style={styles.instructions}>
Press Cmd+R to reload,{'\n'}
Cmd+D or shake for dev menu
</Text>
<LoginButton
publishPermissions={["publish_actions"]}
onLoginFinished={
(error, result) => {
if (error) {
alert("login has error: " + result.error);
} else if (result.isCancelled) {
alert("login is cancelled.");
} else {
AccessToken.getCurrentAccessToken().then(
(data) => {
alert(data.accessToken.toString())
}
)
}
}
}
onLogoutFinished={() => alert("logout.")}
onLogInFound={() => alert("log in found.")}/>
</View>
);
}
}
AppRegistry.registerComponent('FBReact', () => FBReact);
【问题讨论】:
标签: ios facebook facebook-graph-api react-native