新浪微博Python SDK笔记——发微博(一)
来源:互联网 发布:欧倍青 知乎 编辑:程序博客网 时间:2024/06/05 17:06
上一节中已经安装了Python SDK,可以在程序中引入weibo模块编写微博程序了。下面的程序的功能就是利用该模块发一条新微博,先开具体的代码:
#! /usr/bin/python"""引入Python SDK的包"""import weibo"""授权需要的三个信息,APP_KEY、APP_SECRET为创建应用时分配的,CALL_BACK在应用的设置网页中设置的。【注意】这里授权时使用的CALL_BACK地址与应用中设置的CALL_BACK必须一致,否则会出现redirect_uri_mismatch的错误。"""APP_KEY = '2024......'APP_SECRET = '91a57c......'CALL_BACK = 'http://bingbingrobot.sinaapp.com/'def run(): #weibo模块的APIClient是进行授权、API操作的类,先定义一个该类对象,传入参数为APP_KEY, APP_SECRET, CALL_BACKclient = weibo.APIClient(APP_KEY, APP_SECRET, CALL_BACK) #获取该应用(APP_KEY是唯一的)提供给用户进行授权的urlauth_url = client.get_authorize_url()#打印出用户进行授权的url,将该url拷贝到浏览器中,服务器将会返回一个url,该url中包含一个code字段(如图1所示)print "auth_url : " + auth_url#输入该code值(如图2所示)code = raw_input("input the retured code : ")#通过该code获取access_token,r是返回的授权结果,具体参数参考官方文档:# http://open.weibo.com/wiki/Oauth2/access_tokenr = client.request_access_token(code) #将access_token和expire_in设置到client对象client.set_access_token(r.access_token, r.expires_in)#以上步骤就是授权的过程,现在的client就可以随意调用接口进行微博操作了,下面的代码就是用用户输入的内容发一条新微博while True:print "Ready! Do you want to send a new weibo?(y/n)"choice = raw_input()if choice == 'y' or choice == 'Y':content = raw_input('input the your new weibo content : ')if content: #调用接口发一条新微薄,status参数就是微博内容client.statuses.update.post(status=content)print "Send succesfully!"break;else:print "Error! Empty content!"if choice == 'n' or choice == 'N':breakif __name__ == "__main__":run()
图1
图2
程序执行成功后,在微博中就可以看到刚才发的新微博了,如图3所示。
图3
关于授权接口和API接口的调用
由于该SDK提供的类和函数没有详细的说明,授权过程很简单而且是固定的,可以查看模块的源代码文件weibo.py,找到系统中Python模块安装目录,就可以找到该文件,我的系统(Ubuntu)中weibo.py位于:/usr/local/lib/python2.7/dist-packages/。
关于微博操作的API,虽然没有接口的说明,但是有一定的规律。现在新浪微博开放平台的API文档(http://open.weibo.com/wiki/%E5%BE%AE%E5%8D%9AAPI)中找到需要调用的API,例如上面需要发一条微博,找到该功能的API文档(http://open.weibo.com/wiki/2/statuses/update),内容图4所示。
图4
看到该API访问的url,将url中的“/”替换成client对象的“.”,然后看到该API的HTTP请求方式,如果post则调用post接口,如果是get则调用get接口,如果该API的调用方式就是:client.statuses.update.post(status=content),参数以key=value的形式给出,具体的参数在API文档中有非常详细的说明。因此,可以看出,API的调用是非常方便的。
关于是否需要重复授权
类似的用SDK发微博的程序在网上有很多,而且大多类似,步骤都是进行授权,然后调用API,而且授权的过程是将url拷贝到浏览器中,然后将得到的code输入获取access_token。那这里有一个疑问(也是网上不少朋友问到的问题):难道每次发一条微博运行该程序时,都要进行一次授权吗?那不是很麻烦吗?而且官方文档中也说明了,授权一次是可以持续一段时间的(测试级别的是1天),这里却每次运行程序都要重新授权,是不是没必要呢?
答案是:没必要每次运行程序都进行授权,上一次成功的授权只要没有超过有效期是继续有效的。具体怎么操作呢?下一节继续。
By:
- 新浪微博Python SDK笔记——发微博(一)
- 新浪微博Python SDK笔记——发微博(一) .
- 新浪微博Python SDK笔记——发微博(二)
- 新浪微博Python SDK笔记——准备工作
- 新浪微博Python SDK笔记——获取粉丝列表或关注列表
- python sdk 发一个新浪微博
- python sdk 获取新浪微博签到信息
- Android——新浪微博SDK环境搭建问题
- 应用python编写简单新浪微博应用(一)
- 应用python编写简单新浪微博应用(一)
- 新浪微博iOS版SDK框架学习笔记
- Android新浪微博开发(一)OAnth认证及账户管理、sdk的使用
- Python爬虫——新浪微博(网页版)
- IOS - 新浪微博SDK
- 新浪微博SDK使用
- 新浪微博SDK使用说明
- 新浪微博SDK使用指南
- PHP+新浪微博开放平台+新浪云平台(SAE)开发微博应用——PHP SDK中Demo程序简析
- [转]C#.net编程创建 Access 文件和 Excel 文件
- codeforces 2A. Winner
- 镜头的分类及选购指南
- Boost::Filesystem
- Wireshark抓包验证FTP明文传输
- 新浪微博Python SDK笔记——发微博(一)
- 利用Visual Studio制作安装包
- Delphi 拷贝目录
- .NET 索引器
- Delphi 删除目录
- 教父
- OutOfMemoryException问题的处理
- 017天(.net学习之路
- Delphi 移动目录