本文实例讲述了腾讯微博提示missing parameter errorcode 102 错误的解决方法。分享给大家供大家参考。具体分析如下:

今天在调试腾讯微博接口时,出现一个错误,找了网上都没有相关资料,最后自己调通了,故发布此文,避免各位phper重复造轮子.

错误信息,代码如下:复制代码 代码如下:stdClass Object (     [data] =>      [detailerrinfo] => stdClass Object         (             [accesstoken] =>              [apiname] => www.rzxsoft.cn             [appkey] => 801485800             [clientip] => 112.193.138.133             [cmd] => 0             [proctime] => 0             [ret1] => 3             [ret2] => 3             [ret3] => 102             [ret4] => 3659629834             [timestamp] => 1394436892         )      [errcode] => 102     [msg] => missing parameter     [ret] => 3     [seqid] => 1394436894 )在腾讯微博开放平台的官方资料中,未发现解释此错误代码102的开发文档,经过与腾讯微博PHP SDK对比后发现少了一个参数.

解决错误代码102的办法:

在请求用户资料的参数中oauth_version是必填的,而且在OAuth2中,它的值必须为2.a.

请求的参数中,OAuth2部分需包含:

字段 说明
oauth_consumer_key appkey
access_token 授权获得的accesstoken
openid 授权获取的openid
clientip 客户端的ip
oauth_version 版本号,必须为2.a
scope 请求权限范围(默认“all”)

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",   ), )));注意:加上字段后需要重新从登录页面重新授权一次,不然会出现错误“check sign error” 错误代码36.

以下重复刷新接口导致的签名错误返回值,代码如下:复制代码 代码如下:stdClass Object (     [data] =>      [detailerrinfo] => stdClass Object         (             [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] => check sign error     [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程序设计有所帮助。