Я получаю код ответа 500 от API Tumblr v2 на видео пост - PullRequest
1 голос
/ 22 августа 2011

Я могу успешно отправлять текстовые сообщения (с 201 ответом), но когда я изменяю свой параметр типа на «video» и добавляю соответствующие параметры вставки и заголовка, я получаю 500 ответов от Tubmlr.

Их документация довольно легка в деталях того, что мне нужно дать для встраиваемого значения, но я попытался связать напрямую с файлом

Из того, что я видел на других досках объявлений, это не редкость, но ни у кого нет ответа. Код, который я использую, приведен ниже.

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 и является URL-версией следующего кода:

<embed width="480" height="360" src="http://www.keek.com/embed/decaaab" frameborder="0" allowfullscreen />

1 Ответ

0 голосов
/ 01 сентября 2011

Вы, вероятно, увидите ответ от разработчиков Tumblr в списке рассылки здесь:

https://groups.google.com/forum/#!topic/tumblr-api/id_pKWwPcro

Кажется, проблема на конце тамблера.

...