阿里云移动推送,根据别名来查询设备 (python语言)

版权声明:1、本BLOG的目的、形式及内容。   此BLOG为个人维护BLOG,内容均来自 原创及互连网转载。最终目的为收集整理自己需要的文章技术等内容,不涉及商业用途。\r\n 2、有关原创文章的版权   本BLOG上原创文章未经本人许可,不得用于商业用途及传统媒体。网络媒体转载请注明出处,否则属于侵权行为。\r\n 3、有关本站侵权   本BLOG所转载的内容,均是本人未发现有对文章版权声明的文章且 https://blog.csdn.net/shijianduan1/article/details/82460928

---------------------------------------------------------------------------------------------------------------------------------------------------------------

转载请声明:本文来自 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的 ,可以看这个教程

       https://blog.csdn.net/shijianduan1/article/details/82462854

---------------------------------------------------------------------------------------------------------------------------------------------------------------

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

猜你喜欢

转载自blog.csdn.net/shijianduan1/article/details/82460928