2013-09-17 4 views
2

Я использовал FHSTwitter Engine для аутентификации oauth, а также для размещения изображения и текста в твиттере.Опубликовать изображение через FHSTwitterEngine

Когда я попытался отправить сообщение в покое. Он отвечал успешно, но когда я посылаю его с изображением

[[FHSTwitterEngine sharedEngine]postTweet:@"test with image" withImageData:imageData]; 

он дает ошибку 204 и сообщение: Twitter успешно обработал запрос, но не возвращает никакого содержания

Если кто имеет некоторое представление о том, чтобы отправить изображение с текстом или ссылкой.

+0

Возможно, вы испытаете длину более ограниченную длину twitter twit ..? –

+0

Сообщение tweet Length? @NitinGohel –

+0

[[FHSTwitterEngine sharedEngine] postTweet: @ "abc" withImageData: imageData]; Я передаю эти два параметра @NitinGohel –

ответ

-1
NSURL *url = [NSURL URLWithString:imgURl]; 

    NSString *strForPost=[NSString stringWithFormat:@"%@ %@",self.dynamicTextToPost.text,url]; 
    int twitCount=[strForPost length]; 
    int runLoop=twitCount/140; 
    int remender=twitCount%140; 
    if (runLoop==0) { 
     runLoop=runLoop+1; 
    } 
    if(remender!=0){ 
     runLoop=+1; 
    } 
     dispatch_async(GCDBackgroundThread, ^{ 
     @autoreleasepool { 
//   NSData *data = [[NSData alloc] initWithContentsOfURL:url]; 
      [UIApplication sharedApplication].networkActivityIndicatorVisible = YES; 
      NSString *title = nil; 
      NSString *message = nil; 
      NSString *subStr; 
      NSString *strRemain=strForPost; 
      for (int i=0; i<=runLoop; i++) { 
       int j=i*140; 

       NSLog(@"strRemain.length==>%d",strRemain.length); 
       if (strRemain.length<140) { 
        subStr=[strRemain substringFromIndex:0]; 
//     subStr=[strForPost substringWithRange:NSMakeRange(j, strRemain.length)]; 
       }else if(strRemain.length>140){ 
        subStr=[strForPost substringWithRange:NSMakeRange(j, 140)]; 

        NSLog(@"%d",j); 
        NSLog(@"%d",strForPost.length); 
        NSLog(@"%d",strRemain.length); 
        NSLog(@"%d",strForPost.length-j); 
        NSLog(@"%d",strRemain.length-j); 

        strRemain=[strForPost substringWithRange:NSMakeRange(140, strRemain.length-140)]; 
       } 
       NSString *strShare=[self htmlEntityDecode:subStr]; 
       NSError *returnCode = [[FHSTwitterEngine sharedEngine]postTweet:strShare]; 
       [UIApplication sharedApplication].networkActivityIndicatorVisible = NO; 

       if (returnCode) { 
        title = [NSString stringWithFormat:@"Error %d",returnCode.code]; 
        message = returnCode.domain; 
       } else { 
        title = @"Message"; 
        message = @"Successfully Shared"; 
       } 
      } 
      dispatch_sync(GCDMainThread, ^{ 
       @autoreleasepool { 
        if ([message isEqualToString:@"Successfully Shared"]) { 

        }else if ([message isEqualToString:@"Twitter successfully processed the request, but did not return any content"]) { 

        } 
        else{ 
         // unable to share 
        } 
       } 
      }); 
     } 
    }); 
0

Вам просто нужно сжать изображение, ничего больше. Может быть, twitter api не позволяет нам размещать изображение большого размера.

NSData *data = UIImageJPEGRepresentation(imageView.image, 0.6); 

Теперь передайте данные в ваш метод. Вы можете сжать изображение в соответствии с вашим комфортом.

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