安全认证
POST
/v1/oauth/tokenScope 取值范围
Scope取值 | 访问权限 | 说明 |
---|---|---|
public | 默认 | 获取产品类型,获取ETA、价格预估等 |
rides.read | 可选 | 获取用户的行程信息等 |
rides.request | 可选 | 请求、取消、更新行程等 |
profile | 可选 | 获取用户信息等 |
注: 如果接入方是代替用户叫车(用户与滴滴无直接交互),则scope必须包含完整的三项:public,rides.read,rides.request
请求token:
curl -X POST -H "Content-Type: application/json"
-H "Authorization: Bearer domain|{sign}"
-d '{"grant_type":"client_credentials","_":"2016-07-01T10:00:00+0800""nostr":"123abc"}'
'https://api.xiaojukeji.com/v1/oauth/token'
刷新token:
curl -X POST -H "Authorization: Bearer domain|{sign}"
-H "Content-Type: application/json"
-d '{"grant_type":"refresh_token","refresh_token":"43713d0303-49c60a08fe-835c9fc1fe","_":"2016-07-01T11:00:00+0800","nostr":"123abc"}'
'https://api.xiaojukeji.com/v1/oauth/token'
用户token:
curl -X POST -H "Authorization: Bearer domain|{sign}"
-H "Content-Type: application/json"
-d '{"grant_type":"authorization_code","auth_code":"43713d0303-49c60a08fe-835c9fc1fe","_":"2016-07-01T11:00:00+0800","nostr":"123abc"}'
'https://api.xiaojukeji.com/v1/oauth/token'
正常返回:
参数名 | 类型 | 说明 |
---|---|---|
access_token | string | 授权token,请求其他接口时必须由header提交。平台token可以多个同时有效,用户token只最后一个有效 |
refresh_token | string | 刷新token,在access_token过期时使用,该token只一次有效,刷新之后会分配新的refresh_token,无有效期限制 |
expires_in_second | int | access_token有效时间,单位:秒 |
token_type | string | token类型,bear/mac,目前只支持bear类型 |
scope | string | token权限等级,与申请时一致 |
注: 申请token有频次限制,平台 <= 10次/天,个人 <= 5次/天,刷新 <= 10次/天,超过则封禁24小时
返回结果:
http状态
- 200表示请求正确
- 非200表示请求出错
说明:
- 请求数据格式必须为json
- header中需包含接入方id和签名,Authorization: bearer test|{sign},bearer表示请求token类型,test为分配的接入方id,与签名sign用”|”连接
- 签名算法
php版本
function generalCreateSign( $aData = array(), $sKey = '' )
{
if ( empty( $aData ) || ! is_string( $sKey ) ) { //签名数据不能为空,签名key必须为字符串
return FALSE;
}
ksort( $aData ); //签名数据按键值字典顺序排序
$str = '';
foreach ( $aData as $k => $v ) {
if ( empty( $v ) && $v !== 0 ) { //空值键不参与签名
continue;
}
if ( is_array( $v ) ) { //如果键值是数组,编码成json(中文将编码成UTF-8)
$v = json_encode( $v );
}
$str .= trim( $k ) . '=' . trim( $v ) . '&'; //键1=值1&键2=值2...
}
$str = trim( $str, '&' ); //去除字符串两端的&符号
return md5( md5( $str ) . $sKey ); //2次md5,key为给接入方分配的签名key
}
请求参数
Header 参数
Content-Type
string
必需
示例值:
application/json
Authorization
string
必需
示例值:
Bearer domain|{sign}
Body 参数application/json
grant_type
string
必需
申请模式。client_credentials:客户端模式,refresh_token:刷新token,authorization_code:用户授权模式
_
string
必需
当前时间,ISO8601格式,10分钟内有效。测试环境不检查
nostr
string
必需
随机字符串,6位,数字与字母组合,区分大小写
scope
string
可选
申请权限列表,空格分隔,默认为public权限列表,空格分隔,默认为public
refresh_token
string
可选
申请token时下发的refresh_token字段
auth_code
string
可选
接入方下发的auth_code,用于获取用户信息
示例
{
"grant_type": "client_credentials",
"_": "2016-07-01T10:00:00+0800",
"nostr": "123abc"
}
示例代码
返回响应
成功(200)
HTTP 状态码: 200
内容格式: JSONapplication/json
数据结构
access_token
string
必需
refresh_token
string
必需
刷新token,在access_token过期时使用,该token只一次有效,刷新之后会分配新的refresh_token,无有效期限制
expires_in_second
integer
必需
access_token有效时间,单位:秒
token_type
string
必需
token类型,bear/mac,目前只支持bear类型
scope
string
必需
token权限等级,与申请时一致
示例
未设置
最后修改时间: 3 年前