Загрузить изображение JPG в Twitter - PullRequest
0 голосов
/ 07 марта 2012

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

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 без проблем. Глупая ошибка, но, по крайней мере, сейчас это работает. Спасибо за ответы !!

1 Ответ

1 голос
/ 05 июня 2012

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

...