小米开放平台接入笔记

注,此篇文章说的是接入小米账号体系,非联运SDK

如果是联运SDK(比如游戏项目接小米联运),则移步这里:https://dev.mi.com/console/doc/detail?pid=102

 


这两天收到接入小米开放平台的需求,总结一下,以接入小米账号登录为例,讲下整个大致流程。

首先,要有开发者账号,看这个教程:点击打开链接

然后是创建新游戏

然后点创建新游戏,有一个比较坑的地方就是包名必须以.mi结尾

比如你原来的包名是com.linxinfa.birdgame,不行,必须改成com.linxinfa.birdgame.mi

申请游戏成功后会得到一个clientId和clientSecret,这个在接SDK的时候需要使用到。

接下来是接入账号服务sdk,

小米的sdk是放在github上的,对应的文档也是在github上,

以客户端android版sdk为例,看着文档做,有几点需要讲一下,

1 下载到的sdk解压后会发现有很多个版本的jar包,拷贝最新版本的jar包到工程中即可

2 登录按钮点了之后调用什么?

XiaomiOAuthFuture<XiaomiOAuthResults> future = new XiaomiOAuthorize()
         //开发者预先申请好的 AppID
        .setAppId(appID)
         // 开发者预先申请时填好的 redirectUrl
        .setRedirectUrl(redirectUri)
        // int数组,可以用XiaomiOAuthConstants.SCOPE_*等常量
	.setSkipConfirm(skipConfirm) // 不调的话默认是false
	.setScope(scope)
         // 如果是要获得Code的方式,则把startGetAccessToken改成startGetOAuthCode即可。其他相同
        .startGetAccessToken(activity);

注意setSkipConfirm这个的调用,如果传true,即使已经登录过了,再次登录,也会弹出ui询问确认登录,如果为false,则如果之前登录过,再次登录不会弹出ui,而是直接登录。

另,Scope代表了一个AccessToken的权限,主要有:

XiaomiOAuthConstants.SCOPE_PROFILE

XiaomiOAuthConstants.SCOPE_RELATION

XiaomiOAuthConstants.SCOPE_OPEN_ID

XiaomiOAuthConstants.SCOPE_PHONE

另,startGetAccessToken的参数是Unity的主Activity

3  登录的回调在哪里?

以上得到的future,调用waitAndShowFutureResult(future);

然后再waitAndShowFutureResult中进行处理,参考sdk demo中的MainActivity代码。结果是存在类的成员变量results中的。

4 不要使用fastOAuth

因为只有在miui上才可以使用,而且即使是miui,也可能会出现miui版本过低的问题,所以不要使用fastOAuth

5 关于昵称、头像、openId的获取

客户端通过登录接口可以获得三个数据:

results.getAccessToken()
results.getMacKey()
results.getMacAlgorithm())

那么怎么获取昵称、头像和openId呢?这个交给服务器来获取,客户端把accessToken发给服务器,服务器通过http Get来获取昵称、头像和openId,详细看这里:点击打开链接

获取头像和昵称的http Get: https://open.account.xiaomi.com/user/profile

参数clientId和token

获取openid的http Get:  https://open.account.xiaomi.com/user/openidV2

参数clientId和token

 

 

嗯,登录的流程大致就是这样

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

林新发

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值