---------------------------------------------------------------------------------------------------------------------------------------------------------------
转载请声明:本文来自 https://blog.csdn.net/shijianduan1/article/details/82460928
---------------------------------------------------------------------------------------------------------------------------------------------------------------
介绍下背景,我这边 应用 使用 阿里云的移动推送, 然后出于某些业务目的,想要通过别名alias来获取到设备信息(devicdid和其他)
这事 和后台提了下,然后。。。 后台说这个签名机制太烦了,让我自己搞。它可以提供参数。
T_T 好吧,我就这么被打回了,自己的需求只能自己搞了。
这个是 java的sdk手册
https://help.aliyun.com/document_detail/48048.html?spm=a2c4g.11186623.6.607.17b554bekWajEv
这个是python的sdk手册
https://help.aliyun.com/document_detail/48050.html?spm=a2c4g.11186623.6.611.7d4076cbunax4s
想了下, 前段时间 看过python的 基础, 正好电脑上有 , 那么可以拿次来过把瘾 。
---------------------------------------------------------------------------------------------------------------------------------------------------------------
1. 根据操作提示正常操作, 下载 sdk,
2.执行sdk的安装命令, 一切正常。
3.下载demo,修改配置。
4. 运行demo , 发现报错了。 (好像是个定律,不知道为什么,每次新项目的时候,总是得报点错误才算是正常的 )
错误一 :
原因: 咨询了下技术支持群, 原来是 python项目是继续2.7的,而我的是3.5的。(阿里的技术支持群还是很给力的,群号看官方,这里就不提供了,)
解决方法: 安装2.7python版本
关于电脑已有3.5的,需要继续装python2.7的 ,可以看这个教程
---------------------------------------------------------------------------------------------------------------------------------------------------------------
5. 成功运行,
然而 这个时候 发现一个坑(事情远不止一个bug),demo中 没有 通过别名查找设备的方法。 只能自己 硬着头皮上了。
错误二:
自己照着QueryAliases.py 写下了 QueryDevicesByAliasRequest.py,
然而还是报错了,moudle找不到QueryDevicesByAliasRequest.
找了下,看网上说把 .pyc文件删除即可,然而并没有啥用, 只能另想办法。
解决: 其实老司机遇到的话 一眼就能看出来上面的错误, 也就我这样新手,还在不明所以。
from aliyunsdkpush.request.v20160801 import QueryAliasesRequest , 是这行引用错误了,还是引用的原来的QueryAliasesRequest.py , 实际上应该引用 QueryDevicesByAliasRequest.py
PS:这个阿里的项目看起来真方便。
---------------------------------------------------------------------------------------------------------------------------------------------------------------
6.总结
说了这么多,其实就是总结下。
1. 好多事情其实没有那么难;
2.有些问题,仔细排查还是能解决的;
3.好的框架,让人一眼就知道它要干什么,让你知道下一步怎么做。
---------------------------------------------------------------------------------------------------------------------------------------------------------------
最后 附上代码,QueryDevicesByAlias.py
#!/usr/bin/python
#coding=utf-8
import properties
from aliyunsdkpush.request.v20160801 import QueryDevicesByAliasRequest
from aliyunsdkcore import client
clt = client.AcsClient(properties.accessKeyId,properties.accessKeySecret,properties.regionId)
request = QueryDevicesByAliasRequest.QueryDevicesByAliasRequest()
request.set_AppKey(properties.appKey)
#设置要查询的别名
request.set_Alias(properties.alias);
result = clt.do_action(request)
print result