我能够成功提交文字帖子(有201个回复),但当我将我的类型参数更改为“视频”并添加适当的嵌入和标题参数时,我从Tubmlr得到500响应。
他们documentation对于我需要为嵌入值提供的内容的细节非常清楚,但我尝试直接链接到文件,< iframe>,< embed>,并使用网址转义在W3Schools使用这两种方法,我总是得到500响应。
从我在其他留言板上看到的情况来看,这并不罕见,但没有人有答案。我正在使用的代码如下。
NSString *apiCallURL = [NSString stringWithFormat:@"http://api.tumblr.com/v2/blog/%@/post", self.baseURL];
NSLog(@"API Call URL: %@", apiCallURL);
NSURL *url = [NSURL URLWithString:apiCallURL];
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url];
[request setHTTPMethod:@"POST"];
[request setValue:@"application/x-www-form-urlencoded" forHTTPHeaderField:@"Content-Type"];
[request setValue:@"utf-8" forHTTPHeaderField:@"charset"];
NSMutableString *body = [[NSMutableString alloc] init]; //Using NSMutableString instead of stringWithFormat to avoid problems with % encoding
[body appendFormat:@"type=video&caption=%@", caption];
[body appendString:@"&embed=EMBED CODE HERE"];
[request setHTTPBody:[body dataUsingEncoding:NSUTF8StringEncoding allowLossyConversion:YES]];
[body release], body = nil;
[self.authentication authorizeRequest:request];
NSError *error = nil;
NSHTTPURLResponse *response = nil;
NSData *data = [NSURLConnection sendSynchronousRequest:request
returningResponse:&response
error:&error];
if (error)
{
NSLog(@"Error! \n%@", error);
return;
}
if (data) {
// API fetch succeeded
NSString *str = [[[NSString alloc] initWithData:data
encoding:NSUTF8StringEncoding] autorelease];
NSLog(@"Sharing response (%d): %@", [response statusCode], str);
}
我得到的输出是
Sharing response (500):
我一直试图使用的嵌入代码通过tumblr的web界面工作,并且是以下URL编码版本:
<embed width="480" height="360" src="http://www.keek.com/embed/decaaab" frameborder="0" allowfullscreen />
答案 0 :(得分:0)
您可能会在邮件列表中看到Tumblr开发人员的答案:
https://groups.google.com/forum/#!topic/tumblr-api/id_pKWwPcro
这似乎是tumblr结束时的一个问题。