FAQ


1. 为什么需要做MAC签名?

  小米开放平台使用OAuth 2.0作为验证与授权协议。OAuth是一个开放标准,允许第三方应用在用户授权的情况下访问其在网站上存储的信息资源(如帐号信息,好友列表),而这一过程中网站无需将用户的帐号密码告诉给第三方应用。小米OAuth协议支持MAC类型的AccessToken,所以必须使用Mac Access Authentication相对应的签名作为完全访问的验证。

2. 为什么需要用户授权,什么时候需要授权?

按照OAuth开放协议,小米作为服务提供方必须在用户授权同意的情况下才能将用户的资源提供给其他第三方使用。

3. 如果是网页应用没有apk包,如何获取appId, appKey等信息?

如果不是一个客户端应用,可以在小米开放平台上创建轻应用,同样能获取到相应的appId等信息。

4. 已经创建了APP,请求API为何提示客户端标识符无效?

  1. 一个新的app如果需要使用小米开放平台的OAuth服务,需要开通帐号服务,请参考新手引导

  2. URL请求没有做urlEncoding处理,导致参数传递到服务器上有错误

5. 请求API接口为什么返回用户或授权服务器拒绝了请求?

  请求使用的accesTokenappId不匹配或者输入的appId不是由小米开放平台产生的,可以通过获取openId的接口来验证参数的正确性:https://open.account.xiaomi.com/user/openidV2?clientId=xxx&tokenxxxx

6. 访问API后返回参数nonce已经被使用是什么原因?

  1. 传递的nonce和其他的发生的碰撞,一般重试一次错误消失

  2. nonce中的时间部分(冒号后面的部分)为标准北京时间的分钟数,在线时间参考:http://tool.chinaz.com/Tools/unixtime.aspx