百度云推送折腾笔记

1.百度云推送ID:

  • channelId:
    此字段对应设备识别号,所以同一设备使用多个同一开发者appkey的app时,channelId一致。
  • userId:
    登录百度账号绑定则使用百度账号对应的userId,不登录时则使用为app生成的对立userId,同一设备不同的app或者不同设备的同一app的userId均不相同。

用于自己使用的是独立账户认证系统,不打算使用百度账号,所以应注意以下几点:
1.同一设备同一app使用同一套[channelId,userId],故切换账号是无法区分的,应在data中加入自定义识别Id,每次post或get都需验证自定义Id与[channelId,userId]是否匹配。
2.同一账号在另一台设备上登录时,会生成完全不同的一套[channelId,userId],所以考虑在账户登录时上传[channelId,userId]绑定自定义账户。
3.一个自定义Id只可以匹配一套[channelId,userId],同理,当自定义的Id绑定的[channelId,userId]已存在,绑定了另一自定义Id,则取消上一个绑定,绑定这一个Id。

2.使用SDK

服务端使用百度云提供的python的sdk(下载地址),由于该sdk使用py2的版本,而我需要使用py3的版本,这里提供一个py3的简单移植版BaiduYunPushServiceSdk

该sdk需要安装curl,在windows下可以编译安装curl_for_windows,也可以直接安装pycurl的whl文件(下载地址)。

》》这里需要考虑一下(2016-01-09):

1.同一账户在不同设备上登录的情况,应该不允许同时登录,否则服务端
不知道该推送到哪。但是我的登录情况是记录本地的,所以考虑每次从
本地读取登录信息都到服务端验证绑定一下。
2.当设备切换了账号时,出现推送到切换之前的账户,此时客户端根据
Id将会拒绝这一推送,并返回服务端推送并未成功。而根据第3条,之
前的账号已经并未绑定任何[channelId,userId]了,这时该怎么推
送?
因此我需要自己维护消息队列么?每个账户单独维护一个消息队
列?(因为我并不知道这一账户什么时候会在哪台设备上登录)

2016-02-15 附上一个简单的demo

https://github.com/daihaovigg/daiIM

你可能感兴趣的:(百度,APP,开发人员)