腾讯微博提示missing parameter errorcode 102 错误的解决方法
本文实例讲述了腾讯微博提示missingparametererrorcode102错误的解决方法。分享给大家供大家参考。具体分析如下:
今天在调试腾讯微博接口时,出现一个错误,找了网上都没有相关资料,最后自己调通了,故发布此文,避免各位phper重复造轮子.
错误信息,代码如下:
stdClassObject ( [data]=> [detailerrinfo]=>stdClassObject ( [accesstoken]=> [apiname]=>www.nhooo.com [appkey]=>801485800 [clientip]=>112.193.138.133 [cmd]=>0 [proctime]=>0 [ret1]=>3 [ret2]=>3 [ret3]=>102 [ret4]=>3659629834 [timestamp]=>1394436892 ) [errcode]=>102 [msg]=>missingparameter [ret]=>3 [seqid]=>1394436894 )
在腾讯微博开放平台的官方资料中,未发现解释此错误代码102的开发文档,经过与腾讯微博PHPSDK对比后发现少了一个参数.
解决错误代码102的办法:
在请求用户资料的参数中oauth_version是必填的,而且在OAuth2中,它的值必须为2.a.
请求的参数中,OAuth2部分需包含:
Drupal腾讯微博登录实例代码:
$http=drupal_http_request(url('https://open.t.qq.com/api/user/info',array( 'query'=>array( 'access_token'=>$access_token, 'oauth_consumer_key'=>$provider['key'], 'openid'=>$_GET['openid'], 'clientip'=>ip_address(), 'scope'=>'all', 'seqid'=>REQUEST_TIME, 'serverip'=>$_SERVER['SERVER_ADDR'], 'oauth_version'=>'2.a', //'appfrom'=>'php-sdk2.0beta', ), )));
注意:加上字段后需要重新从登录页面重新授权一次,不然会出现错误“checksignerror”错误代码36.
以下重复刷新接口导致的签名错误返回值,代码如下:
stdClassObject ( [data]=> [detailerrinfo]=>stdClassObject ( [accesstoken]=> [apiname]=>weibo.user.info [appkey]=>801485800 [clientip]=>112.193.138.133 [cmd]=>0 [proctime]=>0 [ret1]=>3 [ret2]=>3 [ret3]=>36 [ret4]=>2636350730 [timestamp]=>1394437225 ) [errcode]=>36 [msg]=>checksignerror [ret]=>3 [seqid]=>1394437227 )
获取腾讯微博用户资料,获取当前登录用户的个人资料user/info接口返回值的字段说明,代码如下:
{ errcode:返回错误码, msg:错误信息, ret:返回值,0-成功,非0-失败, data: { birth_day:出生天, birth_month:出生月, birth_year:出生年, city_code:城市id, comp: { begin_year:开始年, company_name:公司名称, department_name:部门名称, end_year:结束年, id:公司id }, country_code:国家id, edu:教育信息 { departmentid:院系id, id:教育信息记录id, level:学历级别, schoolid:学校id, year:入学年 }, fansnum:听众数, favnum:收藏数, head:头像url, homecity_code:家乡所在城市id, homecountry_code:家乡所在国家id, homepage:个人主页, homeprovince_code:家乡所在省id, hometown_code:家乡所在城镇id, idolnum:收听的人数, industry_code:行业id, introduction:个人介绍, isent:是否企业机构, ismyblack:是否在当前用户的黑名单中,0-不是,1-是, ismyfans:是否是当前用户的听众,0-不是,1-是, ismyidol:是否是当前用户的偶像,0-不是,1-是, isrealname:是否实名认证,1-已实名认证,2-未实名认证, isvip:是否认证用户,0-不是,1-是, location:所在地, mutual_fans_num:互听好友数, name:用户帐户名, nick:用户昵称, openid:用户唯一id,与name相对应, province_code:地区id, regtime:注册时间, send_private_flag:是否允许所有人给当前用户发私信,0-仅有偶像,1-名人+听众,2-所有人, sex:用户性别,1-男,2-女,0-未填写, tag:标签 { id:个人标签id, name:标签名 }, tweetinfo:最近的一条原创微博信息 { city_code:城市码, country_code:国家码, emotiontype:心情类型, emotionurl:心情图片url, from:来源, fromurl:来源url, geo:地理位置信息, id:微博唯一id, image:图片url列表, latitude:纬度, location:发表者所在地, longitude:经度, music:音频信息 { author:演唱者, url:音频地址, title:音频名字,歌名 }, origtext:原始内容, province_code:省份码, self:是否自已发的的微博,0-不是,1-是, status:微博状态,0-正常,1-系统删除,2-审核中,3-用户删除,4-根删除, text:微博内容, timestamp:服务器时间戳,不能用于翻页, type:微博类型,1-原创发表,2-转载,3-私信,4-回复,5-空回,6-提及,7-评论, video:视频信息 { picurl:缩略图, player:播放器地址, realurl:视频原地址, shorturl:视频的短url, title:视频标题 } }, tweetnum:发表的微博数, verifyinfo:认证信息, exp:经验值, level:微博等级 }, seqid:序列号 }
剩下的事就非常容易了,处理你自己程序部分的逻辑业务.
希望本文所述对大家的PHP程序设计有所帮助。