为啥在ios中重新打开会话后无法访问facebook好友列表
Posted
技术标签:
【中文标题】为啥在ios中重新打开会话后无法访问facebook好友列表【英文标题】:Why can't I access the facebook friends list after reopening a session in ios为什么在ios中重新打开会话后无法访问facebook好友列表 【发布时间】:2012-11-20 22:35:00 【问题描述】:我正在升级到适用于 ios 的 facebook 3.0 sdk。事情进展顺利,直到我在重新启动应用程序后尝试打开现有会话。我正在尝试访问 facebook 用户的好友列表。
if ([[FBSession activeSession] isOpen])
[request startWithCompletionHandler:^(FBRequestConnection *connection, id result, NSError *error)
//do something here
];
else
[[self session] openWithCompletionHandler:^(FBSession *session, FBSessionState status, NSError *error)
if ([self isValid])
[request startWithCompletionHandler:^(FBRequestConnection *connection, id result, NSError *error)
//log this error we always get
NSLog(@"%@",error);
//do something else
];
];
但是我得到了这个错误:
Error Domain=com.facebook.sdk Code=5 "The operation couldn’t be completed. (com.facebook.sdk error 5.)" UserInfo=0x1d92ff40 com.facebook.sdk:ParsedJSONResponseKey=
body =
error =
code = 2500;
message = "An active access token must be used to query information about the current user.";
type = OAuthException;
;
;
code = 400;
, com.facebook.sdk:HTTPStatusCode=400
我发现如果我使用 FBSession reauthorize 方法,它可以让我完成请求而不会出错,但这也意味着我必须在每次重新启动应用程序时显示 UI 或切换应用程序,这是不可接受的。关于我应该做些什么不同的任何建议?
【问题讨论】:
【参考方案1】:登录后我没有在请求上设置会话。简单的错误。
[[self session] openWithCompletionHandler:^(FBSession *session, FBSessionState status, NSError *error)
if ([self isValid])
//I should have been doing this
request.session = [FBSession activeSession];
[request startWithCompletionHandler:^(FBRequestConnection *connection, id result, NSError *error)
//log this error we always get
NSLog(@"%@",error);
//do something else
];
];
【讨论】:
谢谢,如果没有你的帮助,我永远不会解决这个问题! :) 什么是[self session]方法?以上是关于为啥在ios中重新打开会话后无法访问facebook好友列表的主要内容,如果未能解决你的问题,请参考以下文章
请问为啥我的Microsoft Excel工作表打不开,打开后会显示一个框,框里显示无法访问您试图使用的功能所在
为啥某些 Flask 会话值在关闭浏览器窗口后会从会话中消失,但稍后会在没有我添加它们的情况下重新出现?
为啥重新安装我的 iOS 应用后 Firebase Messaging 无法正常工作?
当用户代理设置为 iOS 时,为啥我的 iTunes 链接无法在 Chrome 中打开?