本文實例講述了騰訊微博提示missing parameter errorcode 102 錯誤的解決方法。分享給大家供大家參考。具體分析如下:
今天在調試騰訊微博接口時,出現一個錯誤,找了網上都沒有相關資料,最後自己調通了,故發布此文,避免各位phper重復造輪子.
錯誤信息,代碼如下:
復制代碼 代碼如下:stdClass Object
(
[data] =>
[detailerrinfo] => stdClass Object
(
[accesstoken] =>
[apiname] => www.jb51.net
[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程序設計有所幫助。