快应用OPPO账号服务端API

2020-08-08 15:47 更新

一、API 概览


API

描述

/jitsopen/api/oauth2/v1.0/token

根据授权码获取token

/jitsopen/api/oauth2/v1.0/token

根据refreshToken刷新token

/jitsopen/api/oauth2/v1.0/userinfo

根据token获取用户信息


二、调用方式


2.1 服务域名

https://jits.open.oppomobile.com

2.2 通信协议

支持通过 HTTP 通道进行请求通信

2.3 请求方法

支持 HTTP POST 方法发送请求,请求参数包含在请求的 URL 中

2.4 签名算法

说明: 

           api_sign计算规则为涉及请求参数(包含get参数和POST参数( 值为NULL的参数不参与签名),例如请求参数k1=v1,参数k2=v2) 


详细算法如下:

          step 1:请求参数(去除appId 、sign、timestamp 这三个参数)按照参数名字母升序排列 

          step 2:请求参数根据&拼接字符串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,然后转换为十六进制字符串作为参数传递 


例子:
        1) 分配调用方appId=5f4dbf2e5629d8cc19e7d51874266678 appSecret=a198fe96c4cadb744ed57b3ad563f037 

        2)请求传递参数: 

          GET参数为: c=1&b=2
          POST参数为: a=3 d=4 

        3)当前系统时间戳: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);


算法参考实现(点击下载):


三、接口详细定义

3.1 根据授权码获取token

3.1.1 接口详情

请求URI

/jitsopen/api/oauth2/v1.0/token

HTTP Method

POST

说明

客户端获取授权码后,服务端可通过授权码向授权服务器请求access_token

请求

Header

Content-Type

application/json

参数

类型

是否

必需

说明

appId

字符串

必需

快应用在开放平台申请的appId

code

字符串

必需

授权码

scope

字符串

必需

请求的授权范围不能包含任何资源所有者最初未许可的范围。若省略,被视为与资源所有者最初许可的范围相同

timestamp

长整型

必需

时间戳,当前计算机时间和GMT时间(格林威治时间)1970年1月1号0时0分0秒所差的毫秒数

sign

字符串

必需

签名,签名算法见2.4的描述

成功响应

HTTP状态码

200

Header

说明

Content-Type

application/json

 

Cache-Control

no-store

 

Pragma

no-cache

 

对象

字段

类型

是否

必有

说明

code

 

字符串

必有

返回码,请求成功的话,返回“200”

msg

 

字符串

可选

提示信息

data

 

 

 

 

accessToken

字符串

必有

授权服务器颁发的访问令牌

tokenType

字符串

必有

令牌的类型,大小写不敏感,目前支持“Bearer”

expiresIn

长整型

必有

token过期时间,单位:秒

refreshToken

字符串

可选

刷新token

scope

字符串

必有

授权范围

openId

字符串

可选

标识用户身份的openId

错误响应

HTTP状态码

200

Header

说明

Content-Type

application/json

 

Cache-Control

no-store

 

Pragma

no-cache

 

字段

字段

类型

是否

必有

说明

code

 

字符串

必有

错误码

msg

 

字符串

必有

错误提示信息

data

 

对象

可选

返回的数据对象


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

参数

类型

是否必需

说明

appId

字符串

必需

快应用在开放平台申请的appId

refreshToken

字符串

必需

刷新token码

scope

字符串

必需

请求的授权范围不能包含任何资源所有者最初未许可的范围。若省略,被视为与资源所有者最初许可的范围相同

timestamp

长整型

必需

时间戳,当前计算机时间和GMT时间(格林威治时间)1970年1月1号0时0分0秒所差的毫秒数

sign

字符串

必需

签名,签名算法见2.4的描述

成功响应

HTTP状态码

200

Header

说明

Content-Type

application/json

 

Cache-Control

no-store

 

Pragma

no-cache

 

对象

字段

类型

是否必有

说明

code

 

字符串

必有

返回码,请求成功的话,返回“200”

msg

 

字符串

可选

提示信息

data

 

 

 

 

accessToken

字符串

必有

授权服务器颁发的访问令牌

tokenType

字符串

必有

令牌的类型,大小写不敏感,目前支持“Bearer”

expiresIn

长整型

必有

token过期时间,单位:秒

refreshToken

字符串

可选

刷新token

scope

字符串

必有

授权范围

openId

字符串

可选

标识用户身份的openId

错误响应

HTTP状态码

200

Header

说明

Content-Type

application/json

 

Cache-Control

no-store

 

Pragma

no-cache

 

字段

字段

类型

是否必有

说明

code

 

字符串

必有

错误码

msg

 

字符串

必有

错误提示信息

data

 

对象

可选

返回的数据对象

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

参数

类型

是否必需

说明

appId

字符串

必需

快应用在开放平台申请的appId

token

字符串

必需

accessToken,访问令牌

timestamp

长整型

必需

时间戳,当前计算机时间和GMT时间(格林威治时间)1970年1月1号0时0分0秒所差的毫秒数

sign

字符串

必需

签名,签名算法见2.4的描述

成功响应

HTTP状态码

200

Header

说明

Content-Type

application/json

 

Cache-Control

no-store

 

Pragma

no-cache

 

对象

字段

类型

是否必有

说明

code

 

字符串

必有

返回码,请求成功的话,返回“200”

msg

 

字符串

可选

提示信息

data

 

 

 

 

nickName

昵称

必有

授权服务器颁发的访问令牌

avatars

json对象

必有

{

"defaultAvatar" : "https://xxx.xxxx.xxx/a.gif" //默认头像

}

错误响应

HTTP状态码

200

Header

说明

Content-Type

application/json

 

Cache-Control

no-store

 

Pragma

no-cache

 

字段

字段

类型

是否必有

说明

code

 

字符串

必有

错误码

msg

 

字符串

必有

错误提示信息

data

 

对象

可选

返回的数据对象

3.3.2 正常响应示例:

{

      "code":"200",
      "msg": "success",
      "data": {
                    "nickName":"ksfifa",
                    "avatars": {
                    "defaultAvatar" :"https://xxx.xxxx.xxx/a.gif"
               }
        }
     
}

 




以上内容是否对您有帮助:
在线笔记
App下载
App下载

扫描二维码

下载编程狮App

公众号
微信公众号

编程狮公众号