当前位置:首页 > PHP教程 > php高级应用 > 列表

腾讯微博 missing parameter errorcode 102 错误解决方法

发布:smiling 来源: PHP粉丝网  添加日期:2014-09-22 13:44:49 浏览: 评论:0 

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

错误信息,代码如下:

  1. stdClass Object 
  2.     [data] =>  
  3.     [detailerrinfo] => stdClass Object 
  4.         ( 
  5.             [accesstoken] =>  
  6.             [apiname] => www.phpfensi.com 
  7.             [appkey] => 801485800 
  8.             [clientip] => 112.193.138.133 
  9.             [cmd] => 0 
  10.             [proctime] => 0 
  11.             [ret1] => 3 
  12.             [ret2] => 3 
  13.             [ret3] => 102 
  14.             [ret4] => 3659629834 
  15.             [timestamp] => 1394436892 
  16.         ) 
  17.  
  18.     [errcode] => 102 
  19.     [msg] => missing parameter 
  20.     [ret] => 3 
  21.     [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 腾讯微博登录实例代码:

  1. $http = drupal_http_request(url('https://open.t.qq.com/api/user/info'array
  2.   'query' => array
  3.     'access_token' => $access_token
  4.     'oauth_consumer_key' => $provider['key'], 
  5.     'openid' => $_GET['openid'], 
  6.     'clientip' => ip_address(), 
  7.     'scope' => 'all'
  8.     'seqid' => REQUEST_TIME, 
  9.     'serverip' => $_SERVER['SERVER_ADDR'], 
  10.     'oauth_version' => '2.a'
  11.     //'appfrom' => 'php-sdk2.0beta', 
  12.   ), 
  13. ))); 

注意:加上字段后需要重新从登录页面重新授权一次,不然会出现错误“check sign error” 错误代码36.

以下重复刷新接口导致的签名错误返回值,代码如下:

  1. stdClass Object 
  2.     [data] =>  
  3.     [detailerrinfo] => stdClass Object 
  4.         ( 
  5.             [accesstoken] =>  
  6.             [apiname] => weibo.user.info 
  7.             [appkey] => 801485800 
  8.             [clientip] => 112.193.138.133 
  9.             [cmd] => 0 
  10.             [proctime] => 0 
  11.             [ret1] => 3 
  12.             [ret2] => 3 
  13.             [ret3] => 36 
  14.             [ret4] => 2636350730 
  15.             [timestamp] => 1394437225 
  16.         ) 
  17.  
  18.     [errcode] => 36 
  19.     [msg] => check sign error 
  20.     [ret] => 3 
  21.     [seqid] => 1394437227 

获取腾讯微博用户资料,获取当前登录用户的个人资料 user/info 接口返回值的字段说明,代码如下:

  1.  errcode : 返回错误码, 
  2.  msg : 错误信息, 
  3.  ret : 返回值,0-成功,非0-失败, 
  4.  data :  
  5.  { 
  6.   birth_day : 出生天, 
  7.   birth_month : 出生月, 
  8.   birth_year : 出生年, 
  9.   city_code : 城市id, 
  10.   comp :  
  11.   { 
  12.    begin_year : 开始年, 
  13.    company_name : 公司名称, 
  14.    department_name : 部门名称, 
  15.    end_year : 结束年, 
  16.    id : 公司id 
  17.   }, 
  18.   country_code : 国家id, 
  19.   edu : 教育信息 
  20.   { 
  21.    departmentid : 院系id, 
  22.    id : 教育信息记录id, 
  23.    level : 学历级别, 
  24.    schoolid : 学校id, 
  25.    year : 入学年 
  26.   }, 
  27.   fansnum : 听众数, 
  28.   favnum : 收藏数, 
  29.   head : 头像url, 
  30.   homecity_code : 家乡所在城市id, 
  31.   homecountry_code : 家乡所在国家id, 
  32.   homepage : 个人主页, 
  33.   homeprovince_code : 家乡所在省id, 
  34.   hometown_code : 家乡所在城镇id, 
  35.   idolnum : 收听的人数, 
  36.   industry_code : 行业id, 
  37.   introduction : 个人介绍, 
  38.   isent : 是否企业机构, 
  39.   ismyblack : 是否在当前用户的黑名单中,0-不是,1-是, 
  40.   ismyfans : 是否是当前用户的听众,0-不是,1-是, 
  41.   ismyidol : 是否是当前用户的偶像,0-不是,1-是, 
  42.   isrealname : 是否实名认证,1-已实名认证,2-未实名认证, 
  43.   isvip : 是否认证用户,0-不是,1-是, 
  44.   location : 所在地, 
  45.   mutual_fans_num : 互听好友数, 
  46.   name : 用户帐户名, 
  47.   nick : 用户昵称, 
  48.   openid : 用户唯一id,与name相对应, 
  49.   province_code : 地区id, 
  50.   regtime : 注册时间, 
  51.   send_private_flag : 是否允许所有人给当前用户发私信,0-仅有偶像,1-名人+听众,2-所有人, 
  52.   sex : 用户性别,1-男,2-女,0-未填写, 
  53.   tag : 标签 
  54.   { 
  55.    id : 个人标签id, 
  56.    name : 标签名 
  57.   }, 
  58.   tweetinfo : 最近的一条原创微博信息 
  59.   { 
  60.    city_code : 城市码, 
  61.    country_code : 国家码, 
  62.    emotiontype : 心情类型, 
  63.    emotionurl : 心情图片url, 
  64.    from : 来源, 
  65.    fromurl : 来源url, 
  66.    geo : 地理位置信息, 
  67.    id : 微博唯一id, 
  68.    image : 图片url列表, 
  69.    latitude : 纬度, 
  70.    location : 发表者所在地, 
  71.    longitude : 经度, 
  72.    music : 音频信息 
  73.    { 
  74.     author : 演唱者, 
  75.     url : 音频地址, 
  76.     title : 音频名字,歌名 
  77.    }, 
  78.    origtext : 原始内容, 
  79.    province_code : 省份码, 
  80.    self : 是否自已发的的微博,0-不是,1-是, 
  81.    status : 微博状态,0-正常,1-系统删除,2-审核中,3-用户删除,4-根删除, 
  82.    text : 微博内容, 
  83.    timestamp : 服务器时间戳,不能用于翻页, 
  84.    type : 微博类型,1-原创发表,2-转载,3-私信,4-回复,5-空回,6-提及,7-评论, 
  85.    video : 视频信息 
  86.    { 
  87.     picurl : 缩略图, 
  88.     player : 播放器地址, 
  89.     realurl : 视频原地址, 
  90.     shorturl : 视频的短url, 
  91.     title : 视频标题 
  92.    } 
  93.   }, 
  94.   tweetnum : 发表的微博数, 
  95.   verifyinfo : 认证信息, 
  96.   exp : 经验值, 
  97.   level : 微博等级 
  98.  }, 
  99.  seqid : 序列号 
  100. }  

剩下的事就非常容易了,处理你自己程序部分的逻辑业务.

Tags: missing parameter errorcode

分享到: