快应用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

公众号
微信公众号

编程狮公众号