使用Facebook应用程序刷新应用程序响应本机登录
我使用的是react原生fbsdk,我在IOS上。当用户登录Facebook时,他们可以按下两个按钮使用Facebook应用程序登录或使用电话号码或电子邮件地址登录。使用电话号码或电子邮件地址登录非常有效,我获取用户对象并为他们创建一个用户帐户。但是当用户按使用Facebook应用程序登录时,我不会收到用户对象,整个应用程序会刷新,用户被推到登录页面,Facebook按钮变为注销。我不太确定如何处理这个问题,因为当用户使用Facebook应用程序登录时,我的控制台中没有任何日志或警报被调用,整个应用程序只是刷新。任何帮助都将不胜感激使用Facebook应用程序刷新应用程序响应本机登录,facebook,react-native,react-native-fbsdk,Facebook,React Native,React Native Fbsdk,我使用的是react原生fbsdk,我在IOS上。当用户登录Facebook时,他们可以按下两个按钮使用Facebook应用程序登录或使用电话号码或电子邮件地址登录。使用电话号码或电子邮件地址登录非常有效,我获取用户对象并为他们创建一个用户帐户。但是当用户按使用Facebook应用程序登录时,我不会收到用户对象,整个应用程序会刷新,用户被推到登录页面,Facebook按钮变为注销。我不太确定如何处理这个问题,因为当用户使用Facebook应用程序登录时,我的控制台中没有任何日志或警报被调用,整个
<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")}
{
log(“onLoginFinished:”,结果);
如果(错误){
log(“登录有错误:”,result.error);
}否则如果(结果被取消){
log(“登录被取消”);
}否则{
AccessToken.getCurrentAccessToken()。然后(
(数据)=>{
让accessToken=data.accessToken
log(“accessToken.toString():”,accessToken.toString())
const responseInfo回调=(错误,结果)=>{
如果(错误){
console.log('获取数据时出错:',错误)
//lert('获取数据时出错:'+Error.toString());
}否则{
log(“responseInfo回调:”,result)
this.state.fbobj=结果;
这是sendAjax();
//警报('成功获取数据:'+result.toString());
}
}
const infoRequest=新GraphRequest(
“/我”,
{
accessToken:accessToken,
参数:{
字段:{
字符串:“电子邮件,姓名”
}
}
},
响应信息回调
);
//启动图形请求。
新建GraphRequestManager().addRequest(infoRequest).start()
}
)
}
}
}
onLogoutFinished={()=>console.log(“注销”)}
在按钮操作中,您将需要以下内容:
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)
})
}
}
)
}
您好,谢谢您的回复,我刚刚在上面添加了我的代码,我假设我的代码是错误的,因为我没有LoginManager?您可以使用Github文档中的代码进行测试吗?在使用中,它说登录按钮+访问令牌,只需复制登录按钮内的代码并测试发生的情况页面仍然只是刷新sadly对于Android它似乎可以工作,但对于IOS我相信不行,我会仔细检查我的appdelegate.m代码