微信公众号可以获取手机设备的ios 如何获取openudidd吗

新手开发者接入
开发者交流互助
消息体签名及加解密
自定义菜单管理
数据统计接口
微信JS接口
微信小店接口
微信卡券接口
微信智能接口
设备功能接口
多客服功能
出自微信公众平台开发者文档
◆ 微信,连接一切 ◆
可穿戴设备
智能医疗健康设备
智能家居、家电
微信硬件平台
连接设备、厂商与人
提供设备,厂商服务器(云),微信三方数据通讯的功能
搭载微信的社交平台能力,构建人与设备的生态系统,提升产品价值
◆ 技术方案 ◆
厂商设备(蓝牙) ---- 微信APP
厂商后台 --------- 微信硬件后台
厂商需具备的能力
设备固件研发
后台服务研发
与微信前后台互通联调
◆ 蓝牙设备接入指南 ◆
手把手开发指南
智能灯泡控制Demo
开发全流程展示
◆ WIFI设备接入指南 ◆
手把手开发指南
建设中,敬请期待...
◆ 常见问题与解答(Q&A) ◆
Q:第三方进行设备相关功能的开发和调试,需要哪些步骤进行?
主要按照以下步骤进行:
1、需要先熟悉公众平台已有功能
2、详细阅读本文档的“第三方协议”相关章节
3、向公众平台后台提交“设备功能”的API使用权限申请,否则无法使用相关API(申请方法见“权限申请”章节)
4、向公众平台提交device id的授权,否则devcie id无法被用户绑定(申请方法见“权限申请”章节)
5、确保第三方服务url可用,第三方服务url的修改:登录公众平---功能---高级功能---开发模式---URL---修改
6、获取二维码,开发、调试
2.2.权限申请'
Q:如何申请“设备功能”API的使用权限?
第三方提供该公众账号的appid给到公众平台产品或者后台负责人,appid的获取:登录公众平---功能---高级功能---开发模式---appid
Q:如何申请device id的使用权限?
向公众平台提交device id的授权(需要提供设备类型(目前支持蓝牙、WIFI两种设备)、device id、原始id,原始id的获取:登录公众平台---设置---账号信息---原始ID)
Q:api调用的频率控制:
目前,公众平台的api调用是有频率控制的,设备api的频率控制如下:
1)transmsg
第三方主动发送消息给设备
2)get_openid
获取设备绑定openID
3)create_qrcode
获取设备二维码
4)authorize_device
5)get_stat
设备状态查询
6)verify_qrcode
验证二维码
每个api调用超过频率限制后,需要等到第二天凌晨0点,才可以恢复服务
1.3.错误处理'
Q:调用设备功能相关的API,返回错误信息”user unauthorized”
第三方没有使用API的权限,需要向公众平台后台提交“设备功能”的API使用权限(申请方法见“权限申请章节”)
Q:为什么设备发给微信的数据和第三方云端接收到的公众平台平台发送的请求数据不一样?
公众平台目前对第三方的协议采用的是“文本协议”方式,因此,对于设备消息数据是经过base64加密后的数据,因此:
1、对于设备给第三方发数据,数据流是:设备数据---微信---公众平台base64加密数据---第三方云;因此,第三方收到的数据是对设备原始数据进行base64加密的数据,第三方需要base64解密,才能得到原始数据
2、对于第三方给设备发送响应,数据流是:第三方base64加密数据---公众平台---微信终端base64解密得到原始数据---设备;因此第三方云发送给设备的数据一定是经过base64加密的,而设备收到的数据则是base64解密后的原始数据
Q:为什么扫描设备二维码,提示设备不存在?
确认device id是否已经申请授权(授权方式见“权限申请”章节)
Q:为什么调用“主动发消息给设备”的API提示“get device_id error”?
请确认公众账号是否申请授权了该device id,并且详细确认调用API中的device_id,device_type,opend_id是否正确?device_type目前为公众账号的原始ID,open_id必须绑定了该device_id
Q:为什么调用“主动发消息给设备”的API提示成功,但是设备没有收到消息?
确保发送的消息中content字段是经过base64加密的数据,确保openid对应的用户已经扫描且绑定了该device id,确保该公众号账号拥有且授权了该device id,
Q:为什么第三方收到的base64解码后的数据和设备发送的原始数据不一样?
base64算法有很多变种:被编码字符长度不是3的倍数的时候,则都用0代替,对应的输出字符为=,当然,这个输出字符是可以定制为其他符号,公众平台平台采用的是原始默认的=作为补充字符,此外,很多framework在http的包体中将英文=字符识别为特殊字符,因此用到相关framework的第三方开发人员需要做好兼容处理
Q:发现文档中示例,最终返回失败
目前连调发现api调用失败的主要原因有:
1、请求的url中带有空格,导致取ulr参数出错
2、post请求包的json串中有多余空格、有中文标点(引号,冒号等),json的字段顺序和文档描述不符
1.4.特殊逻辑
Q:对于绑定、解绑定、设备通信三类请求,第三方是否可以不回给公众平台回包?
这三类请求,都需要第三方回包,因为公众平台后台给第三方发包后,会超时等待第三方的回包,如果第三方不回包,会严重影响公众平台后台性能,一经发现,我们将会踢掉该公众账号。对于“绑定”和“解绑定”请求,第三方可以回一个空包,即:post响应只包含http包头,不包含数据,对于空数据,公众平台后台会直接屏蔽掉该消息,而不会下发给微信客户端,也到达不了设备。对于“设备通信”请求,是需要回复非空的符合消息协议的http的post响应
Q:我有两个公众账号,可否用一个公众账号来给另一个账号的device id绑定的用户发消息?
不行。不少第三方用户混淆了两个账号,导致消息无法送达设备,用户绑定失败等错误,因此出现错误,请先确保&公众账号,device id,open id&之间的关联是完全正确的,然后再进行下一步排查
◆ 附录 ◆
1、请点击下载硬件平台框架说明及接入流程:
2、请点击下载设备功能接口文档:
3、请点击下载蓝牙外设协议文档:市场合作,请您联系:
品牌广告合作,请您联系:
满足以下场景,获得更高通过率:
新融资求报道
新公司求报道
新产品求报道
创投新闻爆料
为你推送和解读最前沿、最有料的科技创投资讯
36Kr股权投资
汇集行业内最优质创业项目的股权投资平台
聚集15家顶级投资机构的专业互联网融资平台
聚集全球最优秀的创业者,项目融资率接近97%,领跑行业微信开发之解绑设备通知
& & 一开始进行解绑的时候,我一直用的强制解绑设备通知。微信在开发者文档中和接口权限中都没有说明这个接口有次数限制,直到最近两天,解绑一直失败才发现,原来这个接口一天限制200次。我去!太坑了。
& & 那好吧,试试解绑设置通知吧。里面需要四个参数,access_token、ticket、deviceID、openid。ticket一开始以为是接口调用凭证的那个ticket,一直返回-1 system error错误,查看文档说是繁忙。好吧,我就稍后再试,半天过去了还是这个错误。于是就上网搜,没有搜到相关知识。之前加了一个微信智能硬件开发交流群,去里面问了一下,才知道原来ticket是通过jsapi接口获取的解绑设备操作凭证。我又去!费了九牛二虎之力终于解决啦,还要感谢群里的【乄侞茈♂恠苸】、【 伟人】。
& & 第一步:引用js文件
& &第二步:config接口权限配置、ready权限验证
wx.config({
debug: false,
beta: true,
appId: '',
timestamp: '',
nonceStr: '',
signature: '',
jsApiList: [
//添加使用的函数
'openWXDeviceLib',
'getWXDeviceTicket'
wx.ready(function(){
//初始化设备库
wx.invoke('openWXDeviceLib', {}, function(res){
alert(res.err_msg);
wx.error(function (res) {
&第三步:获取解绑通知凭证
wx.invoke('getWXDeviceTicket', {&deviceId&:nobase_id,&type&:2}, function(res){
res.ticket //就是要获取的凭证
第四步:用获取到的ticket传到后台,post提交,ok完成。10038人阅读
实习android开发之路(298)
分类:&&&2952人阅读&&&
android下获取设备唯一标识原本非常简单(至少不会像iOS一样禁用这个,禁用那个),但是由于设备的多样性需要考虑的东西也对应复杂起来。
先附上完整代码
1、正常情况下可以通过((TelephonyManager) s_instance.getSystemService( Context.TELEPHONY_SERVICE )).getDeviceId(); &来获取,但是某些平板电脑此函数会返回空
2、通过&Secure.getString(s_instance.getContentResolver(), Secure.ANDROID_ID); & 也可以获取到一个id,但是android2.2或者是某些山寨手机使用这个也是有问题的,它会返回一个固定的&#2d56d682e549c
3、如果前两个都没有获取到udid,那么就在程序启动的时候创建一个随机的uuid,然后保存起来。这个算是兼容方案,当然这样的设备并不会很多。
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:3862498次
积分:35010
积分:35010
排名:第112名
原创:22篇
转载:1920篇
评论:477条
(37)(14)(28)(148)(78)(74)(36)(80)(90)(42)(139)(241)(117)(357)(181)(63)(56)(57)(5)(47)(1)(30)(23)}

我要回帖

更多关于 ios开发获取设备udid 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信