欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  php教程

新浪微博PHP版SDK的导致20007错误

程序员文章站 2024-01-21 16:06:16
...
本文章来转一篇关于新浪微博PHP版SDK的导致20007错误的解决方法,碰到此类问题的朋友可参考。

新浪微博有个高级接口’statuses/upload_url_text’(需要在open.weibo.com中额外申请)。

传递一个图片URL地址和文本内容,就可以发一条图文微博

对应在php版SDK的function如下:

代码如下 复制代码
? /**
* 指定一个图片URL地址抓取后上传并同时发布一条新微博
*
* 对应API:{@link http://open.weibo.com/wiki/2/statuses/upload_url_text statuses/upload_url_text}
*
* @param string $status 要发布的微博文本内容,内容不超过140个汉字。
* @param string $url 图片的URL地址,必须以http开头。
* @return array
*/
function upload_url_text( $status, $url )
{
$params = array();
$params['status'] = $status;
$params['url'] = $url;
return $this->oauth->post( 'statuses/upload', $params, true );
}

调用api的处有明显的错误:$this->oauth->post( 'statuses/upload', $params, true );

(一方面应该请求:statuses/upload_url_text,另外一方面第三个参数错误)

以致会出现:20007错误(20007:does multipart has image ?)

改成这样就ok了:

代码如下 复制代码

? /**
* 指定一个图片URL地址抓取后上传并同时发布一条新微博
*
* 对应API:{@link http://open.weibo.com/wiki/2/statuses/upload_url_text statuses/upload_url_text}
*
* @param string $status 要发布的微博文本内容,内容不超过140个汉字。
* @param string $url 图片的URL地址,必须以http开头。
* @return array
*/
function upload_url_text( $status, $url )
{
$params = array();
$params['status'] = $status;
$params['url'] = $url;
return $this->oauth->post( 'statuses/upload_url_text', $params, false);
}