小米帐号开放API
1. 获取用户名片
请求地址: https://open.account.xiaomi.com/user/profile
请求方法: GET
请求参数:
名称 |
必须 |
类型 |
备注 |
clientId |
是 |
long |
申请应用时分配的APP ID |
token |
是 |
string |
用户授权得到的访问令牌(Access Token) |
返回值:
{
"result": "ok",
"description": "成功",
"data": {
"miliaoNick": "小米帐号昵称",
"userId": "小米用户账号",
"miliaoIcon": "头像URL(会返回多个分辨率版本的头像)"
},
"code": 0
}
{
"result": "error",
"description": "错误描述",
"code": "错误码"
}
2. 获取用户的openId
请求地址: https://open.account.xiaomi.com/user/openidV2
请求方法: GET
请求参数:
名称 |
必须 |
类型 |
备注 |
clientId |
是 |
long |
申请应用时分配的APP ID |
token |
是 |
string |
用户授权得到的访问令牌(Access Token) |
返回值:
{
"result": "ok",
"description": "成功",
"data": {
"openid": "openid"
},
"code": 0
}
{
"result": "error",
"description": "错误描述",
"code": "错误码"
}
3. 获取用户手机号码和邮箱
请求地址: https://open.account.xiaomi.com/user/phoneAndEmail
请求方法: GET
请求参数:
名称 |
必须 |
类型 |
备注 |
clientId |
是 |
long |
申请应用时分配的APP ID |
token |
是 |
string |
用户授权得到的访问令牌(Access Token) |
返回值:
{
"result": "ok",
"description": "成功",
"data": {
"phone": "用户手机号,没有phone返回空",
"email": "用户email, 没有email返回空"
},
"code": 0
}
{
"result": "error",
"description": "错误描述",
"code": "错误码"
}
4. 获取用户米聊好友关系列表
请求地址: https://open.account.xiaomi.com/user/relation
请求方法: GET
请求参数:
名称 |
必须 |
类型 |
备注 |
clientId |
是 |
long |
申请应用时分配的APP ID |
token |
是 |
string |
用户授权得到的访问令牌(Access Token) |
返回值:
{
"result": "ok",
"description": "成功",
"data": {
"friends": "好友列表"
},
"code": 0
}
{
"result": "error",
"description": "错误描述",
"code": "错误码"
}
5. 验证用户密码接口
请求地址: https://open.account.xiaomi.com/checkPassword
请求方法: GET
请求参数:
名称 |
必须 |
类型 |
备注 |
clientId |
是 |
long |
申请应用时分配的APP ID |
xmUserId |
是 |
long |
小米用户ID,可以通过 用户名片API获取 |
callback |
是 |
string |
和回调地址在同一域名下的完整的url,用于通知密码检测结果 |
返回值:
如果授权成功,授权服务器会将用户的浏览器重定向到callback, 并在url参数里面带上xmResult,_xmNonce
, _xmSign
, code
, xmUserId
等参数
名称 |
类型 |
备注 |
xmResult |
boolean |
true表示验证成功,false或没有该参数表示验证错误 |
_xmNonce |
string |
由随机数和时间戳组成,格式:随机数:当前分钟数 |
_xmSign |
string |
对返回结果的签名,用于验证返回结果是否被窜改 |
code |
string |
授权码,第三方可以使用code换取新的Access Token(在安全性要求较高的地方可以再次用token换取userId,以验证用户身份的合法性) |
xmUserId |
long |
小米验证的实际帐号(不一定是第三方传递的帐号),可能会被人恶意窜改 |
注意: 第三方必须在callback中验证_xmSign
,否则造成的损失由第三方负责, 签名验证请求参考MAC签名格式
6.获取用户卡包卡券
请求地址: https://api.passbook.xiaomi.com/app/get_pass
请求方法: GET
请求参数:
名称 |
必须 |
类型 |
备注 |
clientId |
是 |
long |
申请应用时分配的APP ID |
token |
是 |
string |
用户授权得到的访问令牌(Access Token) |
imei |
否 |
string |
手机的IMEI值(请进行MD5哈希处理) |
返回值:
{
"result": "ok",
"description": "成功",
"data": [{
"passId": "卡券Id,用来唯一标识用户已领的卡券",
"passCode": "卡券券码,没有券码返回空",
"appName": "应用名称",
"appId": "应用appId",
"logoUrl": "卡券LOGO的url",
"planId": "卡券的计划ID",
"title": "卡券标题",
"description": "卡券描述",
"validStartDate": "卡券的有效起始时间",
"validEndDate": "卡券的有效截止时间",
}],
"code": 0
}
{
"result": "error",
"description": "错误描述",
"code": "错误码"
}