上一节中已经安装了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笔记——发微博(一)相关推荐

  1. 新浪微博Python SDK笔记——发微博(二)

    本节将改进上一节中发微博的程序,主要的改进功能是:能够保存授权的access_token,不用进行重复授权.先看一下本节工程的目录结构(如图1所示). 图1 send_weibo.py为发微博的主程序 ...

  2. python sdk 就业_新浪微博Python SDK笔记——准备工作

    新浪微博开放平台提供了丰富的微博操作API,开发者可以利用API开发出自己想要的功能,也可以将自己的网站.应用与微博开放平台连接,甚至可以开发出一个具有完全功能的新浪微博客户端(weico)或者网页( ...

  3. python分析微博粉丝_新浪微博Python SDK笔记——获取粉丝列表或关注列表 | 学步园...

    上一节中创建了一个initclient包,封装了授权的过程,通过获取的myAPIClient对象可以直接调用API接口进行微博操作,上一节中就调用了发微博的接口发了一条新微博.这一节还是直接使用ini ...

  4. java 微博sdk_Java基于新浪微博SDK实现发微博的功能

    背景 最近用实现了一个简单的发微博的功能. 新浪微博的SDK已经经历了多次更新,而网上的资料.教程大多还是基于旧版本的,很多细节上有了一些变化.本文将基于最新的新浪微博SDK介绍发微博的过程. 简介 ...

  5. python 自动发微博_用 Python 自动定时发微博

    原标题:用 Python 自动定时发微博 其实小帅b已经挺久没有玩微博了,记得上次玩微博还是为了给周杰伦打榜,不过最近心血来潮,觉得俺的微博账号躺着也是躺着,要不就用 Python 做一个自动定时发微 ...

  6. 用python定时自动发微博_用python自动发微博

    --刚刚全部写完了点发布--结果什么都没保存--内心好忧伤. 终极目标是用raspberry pi + camera 捕捉画面,处理图像识别图中有我家主子(猫), 然后自动capture图像,发微博. ...

  7. 用python定时自动发微博_Python脚本实现自动发带图的微博

    要自动发微博最简单的办法无非是调用新浪微博的API(因为只是简单的发微博,就没必要用它的SDK了).参考开发文档http://open.weibo.com/wiki/API 进行代码编写 创建应用 要 ...

  8. python 微博自动点赞_用 Python 自动定时发微博

    ​其实小帅b已经挺久没有玩微博了,记得上次玩微博还是为了给周杰伦打榜,不过最近心血来潮,觉得俺的微博账号躺着也是躺着,要不就用 Python 做一个自动定时发微博的机器人,让它在上面飘一会. 怎么个飘 ...

  9. 用python定时自动发微博_用 Python 自动定时发微博

    其实小帅b已经挺久没有玩微博了,记得上次玩微博还是为了给周杰伦打榜,不过最近心血来潮,觉得俺的微博账号躺着也是躺着,要不就用 Python 做一个自动定时发微博的机器人,让它在上面飘一会. 怎么个飘法 ...

最新文章

  1. 核酸序列特征信息分析
  2. 语音信号的预加重和加窗处理
  3. java cmd 等待输入_JAVA:调用cmd指令(支持多次手工输入)
  4. php页面代码简化,php代码如何简化
  5. 使用postman消费Marketing Cloud的contact读取API
  6. BZOJ 1854: [Scoi2010]游戏( 二分图最大匹配 )
  7. hdu 4324 Triangle LOVE
  8. 富文本存储型XSS的模糊测试之道
  9. Markdown入门指导
  10. Android利用百度地图定位
  11. 基于android的高仿抖音,Android仿抖音列表效果
  12. php post获取dvi,如何利用http来发送post请求
  13. 机器学习框架_一文了解机器学习框架-TensorFlow的原理和用途
  14. R语言读取淘宝的单品页的名称和价格
  15. 【转】“正由另一进程使用,因此该进程无法访问该文件”的问题解决方法
  16. Eastfax使用技巧
  17. 手机中的html管理器停用,任务管理器已被系统管理员停用该怎么办
  18. 图片从前端回传到后端实现思路总结
  19. 安装mathtype6.9时显示缺少MT Extra字体问题
  20. 【交互设计】七步打造手机网站

热门文章

  1. 纯js实现复选框的全选、反选与获取选中复选框的值
  2. React06---redux学习
  3. MATLAB运行时出现卡顿的处理方法
  4. 32岁大龄程序员该何去何从
  5. java list compareto_java compareTo() 用法注意点
  6. pyqt5写界面读取excel,界面卡顿退出
  7. java 怎么优雅的写出代码_【Java】基础50:如何让写的代码像诗一样优雅?
  8. 对话系统 | (2) 对话系统之用户模拟器
  9. 迷宫问题(JSU-ZJJ)
  10. Tomcat配置本地文件映射