使用FHSTwitterEngine发布图像时出错

时间:2013-09-30 14:25:05

标签: ios objective-c fhs-twitter-engine

在我的应用程序中,我集成了FHSTwitterEngine,用于在Twitter上发布图像。直到上周,它运作良好。但突然间,在尝试发布图像时,显示出204错误

Domain = FHSErrorDomain Code = 204“请求未返回任何内容。”

我不认为这是重复帖子的问题,因为图像会根据用户选择而改变,并且在尝试第一次发布图像时它会给出错误。

基于文字的推文工作正常。问题是仅发布图片

我正在使用的代码

dispatch_async(GCDBackgroundThread, ^{
    @autoreleasepool {

        NSError *returnCode = [[FHSTwitterEngine sharedEngine]postTweet:self.textToTweet withImageData:UIImagePNGRepresentation(tweetImg)];

        NSString *title = nil;
        NSString *message = nil;

        if (returnCode) {
            NSLog("Error-->%d",returnCode.code);               
        } else {
            title = @"Tweet Posted";
            message = @"Successfully";
        }
     }
});

提前致谢

4 个答案:

答案 0 :(得分:1)

这是一个格式错误的多部分表单数据问题。

看看FHSTwitterEngine.m。

寻找这些行

- (NSError *)sendPOSTRequestForURL:(NSURL *)url andParams:(NSDictionary *)params
...
[body appendData:[[NSString stringWithFormat:@"Content-Disposition: form-data; name=\"%@\"\r\n",key] dataUsingEncoding:NSUTF8StringEncoding]];        
[body appendData:[@"\r\n" dataUsingEncoding:NSUTF8StringEncoding]];
[body appendData:data];

在它下面添加这些行

if ([obj isKindOfClass:[NSData class]]) {
    [body appendData:[@"\r\n" dataUsingEncoding:NSUTF8StringEncoding]];
}

我也注意到它缺少状态参数bug 寻找

- (NSError *)postTweet:(NSString *)tweetString withImageData:(NSData *)theData inReplyTo:(NSString *)irt {
...
NSMutableDictionary *params = [NSMutableDictionary dictionary];
params[@"media[]"] = theData;

并添加此

params[@"status"] = tweetString;

或者你可以在这里得到修复: https://github.com/alvani/FHSTwitterEngine/blob/master/FHSTwitterEngine/FHSTwitterEngine.m

感谢。

答案 1 :(得分:0)

我无法在Twitter上发布图片,但现在使用此代码,我可以将带有图片的数据发布到Twitter。

https://github.com/alvani/FHSTwitterEngine

只需用此库替换您的FHSTwitterEngine。

它只是在库中添加了一些更改或错误

答案 2 :(得分:0)

使用此代码压缩现有图像...

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

答案 3 :(得分:0)

您需要将字符串长度低于130个字符