Tumblr API v2上传有效照片失败

3
使用v2 oAuth API中的blog/{blog-host}/post API调用以发布照片时,我在指定图像的“源”方面遇到了问题。API规定此参数应该是一个图片的来源: http://www.tumblr.com/docs/en/api/v2#posting 我使用了我服务器上的一张图片,比如这个链接。Facebook和其他API正确接受并处理它: http://streamified.me/p/d4xh6o/ 不幸的是, Tumblr返回以下响应:

meta = {

       msg = "Bad Request";
        status = 400;
};
response =         {
    errors =             (
        "Error uploading photo."
    );

};

发布其他类型的状态正常运行...

你能否请提供一些你用来实现这个功能的代码?我在构建我的Post请求时遇到了困难。 - BananaNeil
根据我下面的回答,你只需要执行header('location: $image_url')然后中止脚本即可。如果你没有$image_url(因为它是服务器上的本地文件数据),那么就将数据写入临时文件并将其用作URL。 - Zane Claes
不,我的意思是像一整段代码...我觉得我对于如何编写一个POST请求并没有清楚的理解,而且我似乎找不到好的例子。这正是我想要做的事情,但我似乎完全搞不明白。 - BananaNeil
我真的没有更多的代码可以提供了。我的意思是,这就是它:header('location: '.$image_url); return; ... 一旦你完成了这个,你的脚本就会重定向到$image_url并中止。就是这样。当然,你需要一个图像URL来重定向,但我无法帮助你获取它。 - Zane Claes
1个回答

3

看起来我解决了这个问题。我的服务器通过一个PHP脚本提供了上面URL中的图像。尽管头部数据等都已正确发送,所有浏览器中该图像也都显示正常,但Tumblr API并未将其识别为图像。将其重定向到.jpg URL则可以正常工作。

我认为这是Tumblr API的一个bug,但这个解决方法对我来说已经足够好了。


4
Tumblr的API非常非常不稳定。-_- - BananaNeil
重定向到jpg网址?你的意思是你使用source参数而不是data发布了一张图片吗? - gerbz
@ ggwarpig 是的。如果您查看Tumblr API文档,它要求数据源为字符串或URL,而不是实际的数据文件,这似乎很愚蠢... - Supertecnoboff
谢谢您,先生!您刚刚救了我的一天!我一直在尝试以所有可能的方式(数据/数据64/源URL)上传照片帖子中的图像,但一直收到“错误请求”。您的JPG答案给了我一个想法-我尝试了另一个文件,结果发现Tumblr只是对我正在尝试上传的那个gif有些问题!!有时候问题不在代码上,而是您上传的资源出了问题:D - Роман Гуйван

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接