Как опубликовать изображение с приватным твитом с помощью SLRequest в iOS?

У меня проблема в том, что у меня есть несколько подписчиков, и я хочу отправить прямое сообщение с изображением всем подписчикам, но у меня нет способа сделать это.

Я изучаю всю документацию, но не могу найти способ сделать это.

Мой код здесь:

NSString   *strUrl = @"https://api.twitter.com/1.1/direct_messages/new.json";
NSURL      *url    = [NSURL URLWithString:strUrl];
strUrl = nil;

NSMutableDictionary    *parameters = [NSMutableDictionary new];
[parameters setValue:@"name" forKey:@"screen_name"];
[parameters setValue:@"123456" forKey:@"user_id"];
[parameters setValue:@"sending text" forKey:@"text"];

// Creating a request.
SLRequest *request = [SLRequest requestForServiceType:SLServiceTypeTwitter
                                                 requestMethod:SLRequestMethodPOST
                                                           URL:url
                                                    parameters:parameters];

NSData *imageData = [NSData dataWithContentsOfURL:[NSURL URLWithString:@"http://www.greenuplawnandsprinklers.com/uploads/design_sample_landscape.jpg"]];
[request addMultipartData:imageData
                 withName:@"media[]"
                     type:@"image/jpeg"
                 filename:@"image.jpg"];
imageData = nil;

[request setAccount:twitAccount];
url        = nil;
parameters = nil;

// Perform the request.
[request performRequestWithHandler:^(NSData *responseData,NSHTTPURLResponse *urlResponse,NSError *error)
{
dispatch_async(dispatch_get_main_queue(), ^{
      // Check if we reached the rate limit.
      if ([urlResponse statusCode] == 429)
      {
        NSLog(@"Rate limit reached");
        return;
      }

if(LOGS_ON) NSLog(@"TwitterFriendModel-->shareMagazineTitle-->error = %@",error);

// Check if there is some response data.
if (responseData)
{
   NSError *error = nil;
   NSDictionary *dictionary = [NSJSONSerialization JSONObjectWithData:responseData options:NSJSONReadingMutableLeaves error:&error];

NSLog(@"dictionary = %@",dictionary);
dictionary = nil;
}
});
}];
}

Я видел все другие подобные вопросы/ответы в stackoverflow, но у меня не было возможности отправить подписчикам прямое сообщение с изображением.

Пожалуйста, не считайте этот вопрос дубликатом и попытайтесь решить мою проблему. Я буду признателен за каждую вашу подсказку.


person Mohd Haider    schedule 13.08.2014    source источник
comment
Привет всем. Много дней проходит с этой проблемой. Неужели нет никого, кто разбирается в решении? Мне нужен только способ решения.   -  person Mohd Haider    schedule 19.08.2014


Ответы (1)


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

 NSDictionary *message = @{@"status": messagetext};
                 NSURL *requestURL = [NSURL
                                      URLWithString:@"https://upload.twitter.com/1/statuses/update_with_media.json"];
                 SLRequest *postRequest = [SLRequest
                                           requestForServiceType:SLServiceTypeTwitter
                                           requestMethod:SLRequestMethodPOST
                                           URL:requestURL parameters:message];
                 UIImage *image = [self imageReduceSize:[UIScreen mainScreen].bounds.size:imgPost.image];
                 NSData *myData = UIImagePNGRepresentation(image);
                 [postRequest addMultipartData:myData withName:@"media" type:@"image/png" filename:@"TestImage"];
person Stunner    schedule 09.10.2014
comment
не могли бы вы дать мне образец твиттера для этого @Stunner - person Sourabh Sharma; 04.02.2015