我的 iOS 应用程序面临以下问题:
在发布到用户朋友的墙上时,使用 iOS 应用程序我收到错误“
com.facebook.sdk error 5
”。每次我检查“
FBSession.activeSession.isOpen
”时,该应用程序都会要求登录。
之前一切正常。但是由于我已经更改了我的应用程序 ID(因为现在我必须使用不同的 Facebook 应用程序)。我得到了错误。
我对此进行了一些研究并找到了一些解决方案。我都试过了,但没有任何效果。
我编写了以下代码来登录 Facebook:
- (BOOL)openSessionWithAllowLoginUI:(BOOL)allowLoginUI {
comingfromFB = YES;
NSArray *permissions = [[NSArray alloc] initWithObjects:
@"friends_birthday",
nil];
return [FBSession openActiveSessionWithReadPermissions:permissions
allowLoginUI:allowLoginUI
completionHandler:^(FBSession *session, FBSessionState state, NSError *error) {
[self sessionStateChanged:session state:state error:error];
}];
}
以及以下用于发布故事的代码:
if ([FBSession.activeSession.permissions
indexOfObject:@"publish_actions"] == NSNotFound) {
// No permissions found in session, ask for it
[FBSession.activeSession
reauthorizeWithPublishPermissions:
[NSArray arrayWithObject:@"publish_actions"]
defaultAudience:FBSessionDefaultAudienceFriends
completionHandler:^(FBSession *session, NSError *error) {
if (!error) {
// If permissions granted, publish the story
[self publishStory];
}
}];
} else {
// If permissions present, publish the story
[self publishStory];
}
当我运行应用程序时,我收到以下错误:
Error: HTTP status code: 403
2013-02-05 14:36:47.109 <appname>[1705:c07] Error Domain=com.facebook.sdk Code=5 "The operation couldn’t be completed. (com.facebook.sdk error 5.)" UserInfo=0xaa9af20 {com.facebook.sdk:ParsedJSONResponseKey={
body = {
error = {
code = 200;
message = "(#200) The user hasn't authorized the application to perform this action";
type = OAuthException;
};
};
code = 403;
}, com.facebook.sdk:HTTPStatusCode=403}
请帮助我了解我哪里出错了。
我还添加了一些键值对到NSUserDefaults
. 这可能是一个可能的原因吗?
谢谢。