腾讯微博提示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程序设计有所帮助。