加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

使用perl通过API在tumblr上发布本地映像文件

发布时间:2020-12-15 23:32:07 所属栏目:大数据 来源:网络整理
导读:我一直在用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
我一直在用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”替换为post参数中的“data”时(按照其API描述中的指示 – http://www.tumblr.com/docs/en/api/v2#posting),我不断收到tumblr的错误响应.我已经尝试了几种输入“数据”参数的方法 – 作为文件的路径,作为二进制表示,作为URL编码的二进制表示,作为url编码的base64二进制表示,将这些值中的一个作为唯一元素卡住在数组中 – 我已经尝试了所有,并且每一个我从tumblr收到一条错误消息.

那么,有人可以告诉我如何将本地图像文件上传到tumblr?

解决方法

我并不完全熟悉tumblr API,但是谷歌快速搜索了这个例子: https://gist.github.com/derekg/1198576

我会尝试

$response = $ua->post( 'http://api.tumblr.com/v2/blog/mytumblr.tumblr.com/post',[
     type    => 'photo','data[0]'    => $file_contents,## LWP::Useragent should automatically urlencode this
     caption => 'Test image 1',]);

根据这个答案https://stackoverflow.com/a/177866/810448,“data []”也可能在这种情况下起作用.

如果LWP :: Useragent尚未执行此操作,我还会考虑将“Content-type:application / x-www-form-urlencoded”添加到请求标头中.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读