Подтвердить что ты не робот

Ios-Facebook SDK 3.0 Ошибка 5 При обновлении состояния проводки

Я пытаюсь добавить интеграцию facebook в приложение, используя новую (бета-версию) facebook ios sdk 3.0. Все, что я хотел бы, это опубликовать статус обновления для facebook. Я использовал FBLoginView для входа в facebook. Я положил свой идентификатор приложения в plist, как указано на facebook. Я добавил код для отправки в 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 (в консоли Error: HTTP status status: 400). Единственный способ исправить это - удалить приложение из учетной записи facebook и повторно аутентифицировать. Я не уверен, в чем проблема. Я искал онлайн решения, но ничего не мог найти. Если кто знает, как это исправить, сообщите мне. Благодаря

4b9b3361

Ответ 1

Кажется, что ответа на этот вопрос не может быть. Я проверил образцы FB, входящие в SDK, в этих примерах также происходит одна и та же ошибка. Таким образом, это означает, что после нескольких обновлений статуса (15-20) Facebook достигает пределов для этого конкретного пользователя. Если вы выйдете из системы для этого пользователя и войдите в систему как другой пользователь, вы можете успешно опубликовать его.

Если я найду какое-либо расширение для ограничения настроек, я отвечу. Также Facebook не разрешает одну и ту же почту.

Ответ 2

com.facebook.sdk ошибка 5 всегда раздражает при работе с iOS sdk Facebook. В большинстве случаев он поставляется с дополнительными консолями. Ошибка: код состояния HTTP: 400. Его мнение о том, что в iOS sdk Facebook есть ошибка, которая создает эту ошибку случайным образом. Я думаю, что эта ошибка возникает по некоторым причинам, и sdk не дает реальной причины ошибки при ее возникновении.

Несколько возможных причин

  • Каждый запрос в sdk выполняется с помощью блоков завершения, которые мы фактически передаем в качестве аргумента в completeHandler. Эта ошибка возникает, когда выполняется блок и выполняется другой запрос. Простым примером может быть: Если вы написали запрос на публикацию в Facebook (startForPostStatusUpdate::) ​​на некоторое действие кнопки. При однократном нажатии кнопки он будет работать нормально, но если вы дважды нажмете на кнопку, он выкинет эту ошибку. Com.facebook.sdk error 5

  • Если вы пытаетесь опубликовать сообщение, когда текущий сеанс не открывается. например После входа в Facebook затем откройте приложение, затем снова откройте его, а затем попробуйте поделиться им на Facebook, результат → com.facebook.sdk. 5. В этом случае попробуйте снова открыть сеанс, используя

  • Facebook не позволяет повторять один и тот же статус, они считают, что это может быть какой-то спам, например. Если вы пытаетесь обновить статус, и у вас есть жесткая кодировка, строка позволяет сказать @ "Это обновление статуса теста", которое вы ставите снова и снова. После 5-10 попыток они больше не позволят вам делать. Результат com.facebook.sdk error 5. Если это сценарий, вы должны изменить строку состояния и попробовать обновить.

  • Facebook определил предел для конкретного пользователя для публикации статуса с помощью sdk. Например, если вы пытаетесь обновить статус, и вы сделали, скажем, от 15 до 20 обновлений статуса. Они не позволят вам делать больше. Результат → ошибка com.facebook.sdk. 5. В этом случае попробуйте неавторизовать приложение из своей учетной записи Facebook и повторно авторизовать его. Или попробуйте использовать другую учетную запись Facebook.

Ответ 3

Использовать прокси-сервер!

FB ios SDK - это просто перенос HTTP-запроса на graph.facebook.com/....? access_token =.....

Таким образом, вы можете легко реплицировать запрос или использовать прокси-сервер HTTP, чтобы увидеть реальный ответ сервера (который не является ошибкой 5!).