API |
描述 |
/jitsopen/api/oauth2/v1.0/token |
根據(jù)授權碼獲取token |
/jitsopen/api/oauth2/v1.0/token |
根據(jù)refreshToken刷新token |
/jitsopen/api/oauth2/v1.0/userinfo |
根據(jù)token獲取用戶信息 |
2.1 服務域名
https://jits.open.oppomobile.com
2.2 通信協(xié)議
支持通過 HTTP 通道進行請求通信
2.3 請求方法
支持 HTTP POST 方法發(fā)送請求,請求參數(shù)包含在請求的 URL 中
2.4 簽名算法
說明:
api_sign計算規(guī)則為涉及請求參數(shù)(包含get參數(shù)和POST參數(shù)( 值為NULL的參數(shù)不參與簽名),例如請求參數(shù)k1=v1,參數(shù)k2=v2)
詳細算法如下:
step 1:請求參數(shù)(去除appId 、sign、timestamp 這三個參數(shù))按照參數(shù)名字母升序排列
step 2:請求參數(shù)根據(jù)&拼接字符串string。(例如,拼接成k1=v1&k2=v2)
step 3:字符串string之后拼接timestamp,appId和appSecret。(例如,接上一步,k1=v1&k2=v2×tamp={timestamp}&appId={appId}&appSecret={appSecret})
step 4:對step3得到的字符串進行MD5哈希(32位小寫)得到sign,然后轉換為十六進制字符串作為參數(shù)傳遞
例子:
1) 分配調(diào)用方appId=5f4dbf2e5629d8cc19e7d51874266678 appSecret=a198fe96c4cadb744ed57b3ad563f037
2)請求傳遞參數(shù):
GET參數(shù)為: c=1&b=2
POST參數(shù)為: a=3 d=4
3)當前系統(tǒng)時間戳:timestamp=1510277528
4)則 byte[] sign=md5(a=3&b=2&c=1&d=4×tamp=1510277528&appId=5f4dbf2e5629d8cc19e7d51874266678&appSecret=a198fe96c4cadb744ed57b3ad563f037)
5)String strSign = fromBytesToHex(sign);
算法參考實現(xiàn)(點擊下載):
3.1 根據(jù)授權碼獲取token
3.1.1 接口詳情
請求URI |
/jitsopen/api/oauth2/v1.0/token |
|||
HTTP Method |
POST |
|||
說明 |
客戶端獲取授權碼后,服務端可通過授權碼向授權服務器請求access_token |
|||
請求 |
||||
Header |
值 |
|||
Content-Type |
application/json |
|||
參數(shù) |
類型 |
是否 必需 |
說明 |
|
appId |
字符串 |
必需 |
快應用在開放平臺申請的appId |
|
code |
字符串 |
必需 |
授權碼 |
|
scope |
字符串 |
必需 |
請求的授權范圍不能包含任何資源所有者最初未許可的范圍。若省略,被視為與資源所有者最初許可的范圍相同 |
|
timestamp |
長整型 |
必需 |
時間戳,當前計算機時間和GMT時間(格林威治時間)1970年1月1號0時0分0秒所差的毫秒數(shù) |
|
sign |
字符串 |
必需 |
簽名,簽名算法見2.4的描述 |
|
成功響應 |
||||
HTTP狀態(tài)碼 |
200 |
|||
Header |
值 |
說明 |
||
Content-Type |
application/json |
|
||
Cache-Control |
no-store |
|
||
Pragma |
no-cache |
|
||
對象 |
字段 |
類型 |
是否 必有 |
說明 |
code |
|
字符串 |
必有 |
返回碼,請求成功的話,返回“200” |
msg |
|
字符串 |
可選 |
提示信息 |
data
|
accessToken |
字符串 |
必有 |
授權服務器頒發(fā)的訪問令牌 |
tokenType |
字符串 |
必有 |
令牌的類型,大小寫不敏感,目前支持“Bearer” |
|
expiresIn |
長整型 |
必有 |
token過期時間,單位:秒 |
|
refreshToken |
字符串 |
可選 |
刷新token |
|
scope |
字符串 |
必有 |
授權范圍 |
|
openId |
字符串 |
可選 |
標識用戶身份的openId |
|
錯誤響應 |
||||
HTTP狀態(tài)碼 |
200 |
|||
Header |
值 |
說明 |
||
Content-Type |
application/json |
|
||
Cache-Control |
no-store |
|
||
Pragma |
no-cache |
|
||
字段 |
字段 |
類型 |
是否 必有 |
說明 |
code |
|
字符串 |
必有 |
錯誤碼 |
msg |
|
字符串 |
必有 |
錯誤提示信息 |
data |
|
對象 |
可選 |
返回的數(shù)據(jù)對象 |
3.1.2 正常響應示例:
{
"code":"200",
"msg": "success",
"data": {
"accessToken":"23fkewhf234lsjgxfaxufkk5f98",
"tokenType": "Bearer",
"expiresIn": 3600,
"refreshToken": "3423fwefwef984234h42323ffsffe",
"scope":"profile",
"openId":""
}
}
3.2 刷新token
3.2.1 接口詳情
請求URI |
/jitsopen/api/oauth2/v1.0/token |
|||
HTTP Method |
POST |
|||
說明 |
服務端通過前面獲得的refreshToken來刷新token |
|||
請求 |
||||
Header |
值 |
|||
Content-Type |
application/json |
|||
參數(shù) |
類型 |
是否必需 |
說明 |
|
appId |
字符串 |
必需 |
快應用在開放平臺申請的appId |
|
refreshToken |
字符串 |
必需 |
刷新token碼 |
|
scope |
字符串 |
必需 |
請求的授權范圍不能包含任何資源所有者最初未許可的范圍。若省略,被視為與資源所有者最初許可的范圍相同 |
|
timestamp |
長整型 |
必需 |
時間戳,當前計算機時間和GMT時間(格林威治時間)1970年1月1號0時0分0秒所差的毫秒數(shù) |
|
sign |
字符串 |
必需 |
簽名,簽名算法見2.4的描述 |
|
成功響應 |
||||
HTTP狀態(tài)碼 |
200 |
|||
Header |
值 |
說明 |
||
Content-Type |
application/json |
|
||
Cache-Control |
no-store |
|
||
Pragma |
no-cache |
|
||
對象 |
字段 |
類型 |
是否必有 |
說明 |
code |
|
字符串 |
必有 |
返回碼,請求成功的話,返回“200” |
msg |
|
字符串 |
可選 |
提示信息 |
data
|
accessToken |
字符串 |
必有 |
授權服務器頒發(fā)的訪問令牌 |
tokenType |
字符串 |
必有 |
令牌的類型,大小寫不敏感,目前支持“Bearer” |
|
expiresIn |
長整型 |
必有 |
token過期時間,單位:秒 |
|
refreshToken |
字符串 |
可選 |
刷新token |
|
scope |
字符串 |
必有 |
授權范圍 |
|
openId |
字符串 |
可選 |
標識用戶身份的openId |
|
錯誤響應 |
||||
HTTP狀態(tài)碼 |
200 |
|||
Header |
值 |
說明 |
||
Content-Type |
application/json |
|
||
Cache-Control |
no-store |
|
||
Pragma |
no-cache |
|
||
字段 |
字段 |
類型 |
是否必有 |
說明 |
code |
|
字符串 |
必有 |
錯誤碼 |
msg |
|
字符串 |
必有 |
錯誤提示信息 |
data |
|
對象 |
可選 |
返回的數(shù)據(jù)對象 |
3.2.2 正常響應示例:
{
"code":"200",
"msg": "success",
"data": {
"accessToken":"23fkewhf234lsjgxfaxufkk5f98",
"tokenType": "Bearer",
"expiresIn": 3600,
"refreshToken": "3423fwefwef984234h42323ffsffe",
"scope":"profile",
"openId":""
}
}
3.3 獲取用戶基本信息
3.3.1 接口詳情
請求URI |
/jitsopen/api/oauth2/v1.0/userinfo |
|||
HTTP Method |
POST |
|||
說明 |
服務端通過前面獲得的accessToken來獲取用戶信息 |
|||
請求 |
||||
Header |
值 |
|||
Content-Type |
application/json |
|||
參數(shù) |
類型 |
是否必需 |
說明 |
|
appId |
字符串 |
必需 |
快應用在開放平臺申請的appId |
|
token |
字符串 |
必需 |
accessToken,訪問令牌 |
|
timestamp |
長整型 |
必需 |
時間戳,當前計算機時間和GMT時間(格林威治時間)1970年1月1號0時0分0秒所差的毫秒數(shù) |
|
sign |
字符串 |
必需 |
簽名,簽名算法見2.4的描述 |
|
成功響應 |
||||
HTTP狀態(tài)碼 |
200 |
|||
Header |
值 |
說明 |
||
Content-Type |
application/json |
|
||
Cache-Control |
no-store |
|
||
Pragma |
no-cache |
|
||
對象 |
字段 |
類型 |
是否必有 |
說明 |
code |
|
字符串 |
必有 |
返回碼,請求成功的話,返回“200” |
msg |
|
字符串 |
可選 |
提示信息 |
data
|
nickName |
昵稱 |
必有 |
授權服務器頒發(fā)的訪問令牌 |
avatars |
json對象 |
必有 |
{ "defaultAvatar" : "https://xxx.xxxx.xxx/a.gif" //默認頭像 } |
|
錯誤響應 |
||||
HTTP狀態(tài)碼 |
200 |
|||
Header |
值 |
說明 |
||
Content-Type |
application/json |
|
||
Cache-Control |
no-store |
|
||
Pragma |
no-cache |
|
||
字段 |
字段 |
類型 |
是否必有 |
說明 |
code |
|
字符串 |
必有 |
錯誤碼 |
msg |
|
字符串 |
必有 |
錯誤提示信息 |
data |
|
對象 |
可選 |
返回的數(shù)據(jù)對象 |
3.3.2 正常響應示例:
{
"code":"200",
"msg": "success",
"data": {
"nickName":"ksfifa",
"avatars": {
"defaultAvatar" :"https://xxx.xxxx.xxx/a.gif"
}
}
}
更多建議: