前言
前不久萌生了学习下python的想法,于是乎本着练手的目的做了这么个发微博的小玩意。
注册
新浪weibo允许第三方以应用的方式发布微博,所以我们首先要做的就是通过新浪微博开放平台注册一个应用:
打开上述平台的页面,用微博账号登录,然后点立即接入开始注册自己的应用,按提示操作即可。如下是我自己创建好的应用,名为share.cn:
在个人应用的应用信息-基本信息-应用基本信息处找到自己的App Key和App Secret。并在高级信息中设置自己的授权回调页(所谓授权回调页意即通过weibo账号授权个人应用之后的跳转页,设置什么都没差,这里我设置为个人的微博首页)。
授权
获取code
很多人查看新浪的sdk之后,可能选择了对应的python sdk,其实没必要,用接口反而变得复杂了,我们这里不用他的接口。
一般第三方应用通过微博接口来发送微博都是要用户授权的,想必各位看官亦如此做过,那么授权页面是哪个嘞
def get_auth_url(client_id, redirect_uri): |
client_id是自己的app_key,redirect_uri是上一步填写的授权回调页地址,复制生成的链接到浏览器打开,输入自己的微博账号进行授权。
授权成功后,浏览器便会跳转到我们设置的授权回调页,从浏览器的地址栏中找到code字段,就有了授权code。
获取token
接下来需要通过code获取到token,这个token就是我们发微博的凭证:
def get_access_token(app_key, app_secret, redirect_url): |
token只需获取一次,后面可以一直复用这个token,有效期好像是5 year
发微博
安全域名
新浪微博要求,每条通过应用接口发送的微博内容都必须包含安全域名字段,需要先在应用信息-基本信息-应用基本信息配置一个安全域名,我设置了weibo.com
调用接口
这里的安全域名还是使用了自己的微博主页,包含weibo.com即可:
def share_weibo(text, img): |
测试
写个测试代码:
if __name__ == '__main__': |
运行:
[root@localhost share_weibo]# py sina_weibo.py |
成功发布一条图片微博:
如果你想发个视频,可惜了,新浪没有提供对应的接口。我们只能通过在文本中包含已有视频的链接来达到类似的效果。比如要发这个视频:http://t.cn/Ail9eamb?m=4396440127989330&u=5296864682
运行:
[root@localhost share_weibo]# py sina_weibo.py |
成功发送一条视频的微博:
可以在我的微博看到刚刚发送的这条视频。
结语
还有一些接口比如评论之类的,可以自己测试下,在接口管理都可以看到对应的介绍。
附上源码:https://github.com/Fireplusplus/share_weibo