Все еще не уверен, что происходит, но я решил проблему. Вот что я сделал:
- (void)request:(FBRequest*)request didFailWithError:(NSError*)error {
if ([error code] == 1 && [[request method] isEqualToString:@"photos.upload"]) {
FBRequest *tryAgain = [FBRequest requestWithDelegate:self];
[tryAgain call:[request method] params:[request params] dataParam:(NSData *)[request dataParam]];
}
}
По существу, я просто попробовал еще раз. Повторная отправка одного и того же запроса не сработала (не удалось с недопустимой подписью), поэтому я создал новый запрос со свойствами старого.
Приятная вещь в этом заключается в том, что это своего рода рекурсивный: если новый запрос тоже не сработает, он просто продолжит попытки. Надеюсь, я не встречу никаких негативных побочных эффектов.
Будьте осторожны. Если по какой-либо причине каждый запрос, который вы отправляете, терпит неудачу (прерывистые сетевые проблемы или вообще нет сети, слишком загружены серверы facebook и т. Д.), Ваше приложение зависает навсегда. Вы должны ограничить количество попыток отправки нового запроса, если предыдущий не смог получить разумное число (скажем, 3). –
Очень хорошо поставил. Я тоже созерцал что-то подобное. –