我正在使用react-native-fbsdk并在IOS上。当用户使用Facebook登录时,他们可以按两个按钮。 使用Facebook应用程序登录或使用电话号码或电子邮件地址登录。使用电话号码或电子邮件地址登录工作完美,我获取用户对象并为他们创建用户帐户。但是,当用户按使用Facebook应用程序登录时,我没有收到用户对象,整个应用程序会刷新到推送到登录页面的位置,而Facebook按钮已转向退出。我不太清楚如何处理这个问题,因为当用户使用Facebook App登录时,我的console.logs或警报都没有被调用,整个应用程序只是刷新。非常感谢任何帮助。
<LoginButton
readPermissions={["email","public_profile"]}
onLoginFinished={
(error, result) => {
console.log("onLoginFinished: ", result);
if (error) {
console.log("login has error: ", result.error);
} else if (result.isCancelled) {
console.log("login is cancelled.");
} else {
AccessToken.getCurrentAccessToken().then(
(data) => {
let accessToken = data.accessToken
console.log("accessToken.toString(): ", accessToken.toString())
const responseInfoCallback = (error, result) => {
if (error) {
console.log('Error fetching data: ', error)
//lert('Error fetching data: ' + error.toString());
} else {
console.log("responseInfoCallback:", result)
this.state.fbobj = result;
this.sendAjax();
//alert('Success fetching data: ' + result.toString());
}
}
const infoRequest = new GraphRequest(
'/me',
{
accessToken: accessToken,
parameters: {
fields: {
string: 'email,name'
}
}
},
responseInfoCallback
);
// Start the graph request.
new GraphRequestManager().addRequest(infoRequest).start()
}
)
}
}
}
onLogoutFinished={() => console.log("Logout")}
答案 0 :(得分:1)
在你的按钮动作中,你需要这样的东西:
import { LoginManager, AccessToken } from 'react-native-fbsdk'
handlePressFacebookLogin = () => {
LoginManager.logInWithReadPermissions(['public_profile', 'email']).then(
(result) => {
if (!result.isCancelled) {
AccessToken.getCurrentAccessToken().then((data) => {
console.log(data)
})
}
}
)
}