2012-03-07 5 views
0

Я пытаюсь загрузить jpg-изображение в твиттер. Я могу загрузить @ "icon.png" столько раз, сколько хочу, но, похоже, не могу загрузить jpg. Я всегда получаю ошибку 403 от твиттера. Это мой код:Загрузить JPG-изображение в Twitter

ACAccount *twitterAccount = [arrayOfAccounts objectAtIndex:0]; 


UIImage *image =[UIImage imageNamed:file]; //file is the name of a jpg image. If replaced with @"icon.png" the upload works 


TWRequest *postRequest = [[TWRequest alloc] initWithURL:[NSURL URLWithString:@"https://upload.twitter.com/1/statuses/update_with_media.json"] 
              parameters:[NSDictionary dictionaryWithObject:@"Hello. This is a tweet." forKey:@"status"] requestMethod:TWRequestMethodPOST]; 

[postRequest addMultiPartData:UIImagePNGRepresentation(image) withName:@"media" type:@"multipart/png"]; //I've tried this with UIImageJPEGRepresentation(image, 80) and multipart/jpg and jpeg to no avail 


// Set the account used to post the tweet. 
[postRequest setAccount:twitterAccount]; 

[postRequest performRequestWithHandler:^(NSData *responseData, NSHTTPURLResponse *urlResponse, NSError *error) 
{ 
    NSLog(@"Twitter response, HTTP response: %i", [urlResponse statusCode]); 
}]; 

Помогите!

Если я использую ниже это работает

UIImage *image =[UIImage imageNamed:@"background.png"]; //This file is copied to the device when the app is built. 

Но, если я использую это не работает, хотя я подтвердил, что этот путь и имя файла делает нетронутым подтяните изображение

UIImage *image =[UIImage imageNamed:[NSString stringWithFormat:@"%@/%@", dir, file]]; 

Что я делаю неправильно? Благодаря

/// РЕШЕНИЕ Я могу быть идиотом, пожалуйста, не распинают меня, но вот то, что мне нужно изменить UIImage к

UIImage *image = [UIImage imageWithContentsOfFile:[NSString stringWithFormat:@"%@/%@", dir, file]]; 

Это позволяет как PNG и JPG, чтобы загрузить без вопрос. Глупая ошибка, но, по крайней мере, сейчас она работает. Спасибо за ответы!

+0

Проверьте свой 'twitterAccount', потому что ошибка' 403' является ошибкой аутентификации. – Shahzeb

+0

Да, я имею, он установлен как для чтения, так и для записи. Приложению также разрешен доступ. Как я уже говорил, я могу загрузить значок.png без проблем. Как только я попытаюсь загрузить jpg, формат файла, который мне нужен, он возвращает 403. Очень расстраивает! Спасибо за быстрый ответ! Кстати, возвращение я получаю png 200. Я только что подтвердил это снова, но загрузил еще один png. – mejim707

+0

Для jpg вы передаете imageNamed только имя файла, или вы также добавляете расширение .jpg? – Abizern

ответ

1

Ошибка 403 означает, что ошибка исходит от Twitter; вы не можете разделить один и тот же контент дважды с одной и той же учетной записью Twitter. Если вы хотите загрузить одно и то же изображение, вы должны сначала удалить его из учетной записи Twitter, а затем попытаться загрузить его снова. В противном случае загрузите другое изображение.

Смежные вопросы