【发布时间】:2013-05-10 14:56:35
【问题描述】:
我一直在用 perl 弄乱 tumblr API,并得到了几个可以工作的函数。
但是,我无法通过 perl 上传本地图像文件。
这是适用于 URL 的代码
use LWP::Authen::OAuth;
use JSON;
use Data::Dumper;
use strict;
my $ua = LWP::Authen::OAuth->new(
oauth_consumer_key => 'xxx',
oauth_consumer_secret => 'xxx',
oauth_token => 'xxx',
oauth_token_secret => 'xxx',
);
my $response;
$response = $ua->post( 'http://api.tumblr.com/v2/blog/mytumblr.tumblr.com/post', [
type => 'photo',
url => 'http://www.example.com/mypic.jpg' ,
caption => 'Test image 1',
]);
if ($response->is_success) {
print "it worked";
}
else {
print "it did not work \n \n \n \n";
print $response->as_string;
}
但是,当我在帖子参数中将“url”替换为“data”时(按照此处的 API 描述中的说明 - http://www.tumblr.com/docs/en/api/v2#posting),我不断收到来自 tumblr 的错误响应。我尝试了几种输入“数据”参数的方法 - 作为文件的路径,作为二进制表示,作为 URL 编码的二进制表示,作为 url 编码的 base64 二进制表示,将其中一个值作为唯一元素在一个数组中 - 我已经尝试了所有,并且每一个我都会从 tumblr 收到一条错误消息。
那么,有人可以告诉我如何将本地图像文件上传到 tumblr 吗?
【问题讨论】:
-
你遇到了什么错误?
-
HTTP/1.1 400 Bad Request Connection: close Date: Wed, 15 May 2013 21:48:31 GMT Server: nginx Content-Type: application/json; charset=utf-8 Client-Date: Wed, 15 May 2013 21:48:31 GMT Client-Peer: 66.6.40.14:80 Client-Response-Num: 1 Client-Transfer-Encoding: chunked P3P: CP="ALL ADM DEV PSAi COM OUR OTRo STP IND ONL" Set-Cookie: tmgioct=519402aea446110439257710; expires=Sat, 13-May-2023 21:48:30 GMT; path=/; httponly {"meta":{"status":400,"msg":"Bad Request"},"response":{"errors":["Error uploading photo."]}} -
尝试删除标题部分 - 可以吗?