新浪微博PHP版SDK的BUG,导致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);
	}

 另:欢迎围观我今天做的微博应用:http://apps.weibo.com/wmyunqi

-------------------------------------------------------------------------------------------------------------------------------------------------------------------------

承接微信公众平台消息接口开发、PHP、.NET、javascript、html5程序开发;新浪微博应用、腾讯微博应用等各大开放平台应用开发业务

联系QQ:1433273389 

关注妈妈助手(账号mmhelper)方法:

1. 依次进入以下路径:朋友们—>添加朋友—>搜号码,输入mmhelper,不区分大小写,点击查找,然后点击关注。

2. 扫描二维码:

posted @ 2013-03-07 10:06  charlie  阅读(3457)  评论(1编辑  收藏  举报