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

ben*_*555 13 facebook ios facebook-ios-sdk

我正在尝试使用新的(beta)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];
}
Run Code Online (Sandbox Code Playgroud)

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

abd*_*.me 10

com.facebook.sdk错误5在使用Facebook iOS sdk时总是很烦人.大多数情况下它附带在控制台错误:HTTP状态代码:400.它认为Facebook iOS sdk中存在一个随机产生此错误的错误.我认为这个错误由​​于某些原因而发生,并且sdk在发生时不提供错误的实际原因.

几个可能的原因

  • sdk中的每个请求都是使用我们在completionHandler中作为参数实际传递的完成块来完成的.当块正在进行并发出另一个请求时,会发生此错误.一个简单的例子可能是如果您已经写过请求在Facebook上发布(startForPostStatusUpdate::)的某些按钮操作.在单击按钮上它可以正常工作,但如果你双击按钮它将抛出此错误com.facebook.sdk错误5

  • 如果您尝试在当前会话未打开时发布.例如,一旦用Facebook登录然后杀死应用程序然后重新打开,然后尝试在Facebook上分享,结果 - > com.facebook.sdk错误5.在这种情况下尝试重新打开会话

  • Facebook不允许重复发布相同的状态,他们认为它可能是某种垃圾邮件,例如,如果您正在尝试更新状态并且您有硬编码字符串,请说@"这是测试状态更新"您再次冒充然后再次.经过5到10次尝试,他们不会再让你做了.产生的com.facebook.sdk错误5.如果是这种情况,您应该更改状态字符串并尝试更新.

  • Facebook已经定义了特定用户使用sdk发布状态的限制.例如,如果您尝试更新状态并且已完成,则可以说15到20个状态更新.他们不会让你做更多结果 - > com.facebook.sdk错误5.在这种情况下尝试从您的Facebook帐户取消对该应用程序的授权并重新授权或尝试使用其他Facebook帐户


Par*_*kor 7

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

如果我找到任何限制设置的扩展名,我会回复.Facebook也不允许使用同一个帖子.