爱板网论坛

查看: 201|回复: 0

[教程] 用树莓派3发微博

[复制链接]

231

主题

2

好友

6398

积分

状元

Rank: 6Rank: 6

  • TA的每日心情
    开心
    2016-8-15 09:30
  • 签到天数: 162 天

    连续签到: 1 天

    [LV.7]常住居民III

    爱板会员勋章

    发表于 2017-7-10 14:29:20 |显示全部楼层
    本打算做个微博机器人,但是貌似微博把接口的权限改变了,不是很好弄,所以这里先做个半自动的。

    首先去open.weibo.com 先建立自己的应用,你会得到一个 App Key App Secret ,除此以外我们需要在 应用信息-高级信息中,把授权回调页 写成https://api.weibo.com/oauth2/default.html 取消
    授权回调页 同样即可。
    TIM截图20170710142024.png


    代码:

    1.     <font size="3">#coding=utf-8  
    2.     #! /usr/bin/python
    3.     """
    4.     引入Python SDK的包
    5.     """
    6.     import weibo

    7.     """
    8.     授权需要的三个信息,APP_KEY、APP_SECRET为创建应用时分配的,CALL_BACK在应用的设置网页中
    9.     设置的。【注意】这里授权时使用的CALL_BACK地址与应用中设置的CALL_BACK必须一致,否则会出
    10.     现redirect_uri_mismatch的错误。
    11.     """
    12.     APP_KEY = '21523394XX'  
    13.     APP_SECRET = 'eb0da29dd163c64ec26dc6afc3b7XXXX'  
    14.     CALL_BACK = 'https://api.weibo.com/oauth2/default.html'

    15.     def run():  
    16.     #weibo模块的APIClient是进行授权、API操作的类,先定义一个该类对象,传入参数为APP_KEY, APP_SECRET, CALL_BACK
    17.             client = weibo.APIClient(APP_KEY, APP_SECRET, CALL_BACK)  
    18.     #获取该应用(APP_KEY是唯一的)提供给用户进行授权的url
    19.             auth_url = client.get_authorize_url()  
    20.     #打印出用户进行授权的url,将该url拷贝到浏览器中,服务器将会返回一个url,该url中包含一个code字段(如图1所示)
    21.             print "auth_url : " + auth_url  
    22.     #输入该code值(如图2所示)
    23.             code = raw_input("input the retured code : ")  
    24.     #通过该code获取access_token,r是返回的授权结果,具体参数参考官方文档:
    25.     # http://open.weibo.com/wiki/Oauth2/access_token
    26.             r = client.request_access_token(code)  
    27.     #将access_token和expire_in设置到client对象
    28.             client.set_access_token(r.access_token, r.expires_in)

    29.     #以上步骤就是授权的过程,现在的client就可以随意调用接口进行微博操作了,下面的代码就是用用户输入的内容发一条新微博

    30.             while True:  
    31.                     print "Ready! Do you want to send a new weibo?(y/n)"  
    32.                     choice = raw_input()  
    33.                     if choice =='y' or choice =='Y':  
    34.                             content = raw_input('input the your new weibo content : ')  
    35.                             if content:  
    36.     #调用接口发一条新微薄,status参数就是微博内容
    37.                                     client.statuses.update.post(status=content)  
    38.                                     print "Send succesfully!"  
    39.                                     break;  
    40.                             else:  
    41.                                     print "Error! Empty content!"  
    42.                     if choice =='n' or choice =='N':  
    43.                             break

    44.     if __name__ == "__main__":  
    45.             run()</font>
    复制代码

    weibo 这个库来自于 廖雪峰-Python微博SDK
    运行之后会让你登录:
    TIM截图20170710142114.png


    我们复制控制台显示出来的链接,粘贴到浏览器去获得code:

    TIM截图20170710142123.png


    如果第一次登微博,就需要输一下帐号,密码,我的之前已经登陆过了。
    看地址栏最后有一串字符:
    TIM截图20170710142131.png



    然后会问你要不要发微博,我们来发一条:

    TIM截图20170710142140.png


    去微博看一看:

    TIM截图20170710142149.png


    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    关闭

    站长推荐上一条 /2 下一条

    手机版|爱板网 |网站地图  

    GMT+8, 2017-11-19 10:55 , Processed in 0.350681 second(s), 11 queries , Memcache On.

    苏公网安备 32059002001056号

    Powered by Discuz!

    回顶部