发布状态更新时ios-Facebook SDK 3.0错误5

时间:2012-08-07 17:14:58

标签: ios facebook facebook-ios-sdk

我正在尝试使用新的(测试版)facebook ios sdk 3.0在应用中添加facebook集成。我想要的是向facebook发布状态更新。我使用FBLoginView登录Facebook。我按照facebook上的指示将我的app id放在plist中。我输入了一些代码发布到Facebook。

(void)viewDidLoad
{
[super viewDidLoad];
NSArray *perms;
perms = [NSArray arrayWithObjects:@"status_update", nil];
FBLoginView *loginview = 
[[FBLoginView alloc] initWithPermissions:perms];

loginview.frame = CGRectOffset(loginview.frame, 5, 5);
loginview.delegate = self;

[self.view addSubview:loginview];
// Do any additional setup after loading the view, typically from a nib.

}

- (IBAction)poststatus:(UIButton *)sender {
NSString *message = [NSString stringWithFormat:@"Test staus update"];

[FBRequestConnection startForPostStatusUpdate:message
                            completionHandler:^(FBRequestConnection *connection, id result, NSError *error) {

                                [self showAlert:message result:result error:error];

                            }];
}
- (void)showAlert:(NSString *)message
       result:(id)result
        error:(NSError *)error {

NSString *alertMsg;
NSString *alertTitle;
if (error) {
    alertMsg = error.localizedDescription;
    alertTitle = @"Error";
} else {
    NSDictionary *resultDict = (NSDictionary *)result;
    alertMsg = [NSString stringWithFormat:@"Successfully posted '%@'.\nPost ID: %@", 
                message, [resultDict valueForKey:@"id"]];
    alertTitle = @"Success";
}

UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:alertTitle
                                                    message:alertMsg
                                                   delegate:nil
                                          cancelButtonTitle:@"OK"
                                          otherButtonTitles:nil];
[alertView show];
}

奇怪的是,这段代码适用于ONCE。在第一次验证用户后,我可以成功发布一个状态更新。之后,所有后续尝试都将失败,并显示FBiOSSDK错误5(在控制台中,错误:HTTP状态代码:400)。解决此问题的唯一方法是从Facebook帐户中删除应用程序并重新进行身份验证。我不确定问题是什么。我在网上寻找解决方案但找不到任何东西。如果有人知道如何解决这个问题,请告诉我。感谢

2 个答案:

答案 0 :(得分:7)

似乎这个问题可能没有答案。我已经检查了带有SDK的FB样本,在这些示例中也发生了同样的错误。所以这意味着在很少的状态更新(15-20)之后Facebook达到了该特定用户的限制。如果您注销该用户并以其他用户身份登录,则可以成功发布。

如果我找到任何限制设置的扩展程序,我会回复。 Facebook也不允许使用相同的帖子。

答案 1 :(得分:0)

使用代理!

FB ios SDK只是对graph.facebook.com / ....的HTTP请求的包装??access_token = .....

因此,您可以轻松复制请求或使用HTTP代理查看真实的服务器答案(这不是错误5!)。