• 自动发带图的微博


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

    创建应用

    要使用微博的API,需先要有个应用。随便是个应用就行,可以到这里注册一个站内应用应用注册。注册应用的主要目的是要获得MY_APPKEYMY_ACCESS_TOKEN,如图所示

    获取access_token

    API的调用需要登录授权获得access_token。参考

    首先,调用https://api.weibo.com/oauth2/authorize接口,获得code。

    该接口有三个必须的参数:

    • client_id:申请应用时分配的AppKey。
    • redirect_url:就是创建应用中设置的回调地址
    • response_type:响应类型,可设置为code

    具体做法,就是在浏览器打开https://api.weibo.com/oauth2/authorize?client_id=123050457758183&redirect_uri=http://www.example.com/response&response_type=code。该方法会转到授权页面,授权之后会转到http://www.example.com/response&code=CODE,记录下该url中的CODE。

    接着,调用https://api.weibo.com/oauth2/access_token接口,获得access_token。
    该接口有如下必须的参数:

    • client_id:申请应用时分配的AppKey。
    • client_secret:申请应用时分配的AppSecret。
    • grant_type:请求的类型,填写authorization_code
    • code:调用authorize获得的code值。
    • redirect_uri: 就是创建应用中设置的回调地址

    具体做法就是构建一个POST请求,再在返回的数据中找到access_token,保存下来。具体的Python代码:

    import requests
    
    url_get_token = "https://api.weibo.com/oauth2/access_token"
    
    #构建POST参数
    playload = {
                "client_id":"填入你的",
                "client_secret":"填入你的",
                "grant_type":"authorization_code",
                "code":"上面获得的CODE",
                "redirect_uri":"你的回调用地址"
                 }
    #POST请求
    r = requests.post(url_get_token,data=playload)
    
    #输出响应信息
    print r.text
    

    如果正常的话,会返回下面这样的json数据:

    {"access_token":"我们要记下的","remind_in":"157679999","expires_in":157679999,"uid":"1739207845"}
    

    根据返回的数据,access_token的值就是我们要的。其中remind_in的值是access_token的有效期,单位为秒,我们可以看到,这个时间有3、4年之久,足够我们用了。

    发表纯文字微博

    调用接口https://api.weibo.com/2/statuses/update.json发表文字微博,其参数如下

    其中必须的:

    • access_token: 就是我们上一步获得的access_token
    • status:要发布的微博文本内容,必须做URLencode,内容不超过140个汉字

    具体代码:

    #发表文字微博的接口
    url_post_a_text = "https://api.weibo.com/2/statuses/update.json"
    
    #构建POST参数
    playload = {
            "access_token":"填入你的",
            "status":"This is a text test@TaceyWong"
            }
    #POST请求,发表文字微博
    r = requests.post(url_post_a_text,data = playload)
    

    如果正常,会有向下面这样的结果

    发表带图片的微博

    调用接口http://open.weibo.com/wiki/2/statuses/upload发表图片微博,其参数如下:

    其中必须的参数:

    • access_token: 就是我们上一步获得的access_token
    • status:要发布的微博文本内容,必须做URLencode,内容不超过140个汉字
    • pic:要发表的图片,采用multipart/form-data编码方式

    具体的代码:

    #发表图文微博的接口
    url_post_pic = "https://upload.api.weibo.com/2/statuses/upload.json"
    
    #构建文本类POST参数
    playload={
            "access_token":"",
            "status":"Test:Post a text with a pic & AT someone@丸子覠"
            }
    #构建二进制multipart/form-data编码的参数
    files={
            "pic":open("logo.png","rb")
            }
    #POST请求,发表微博
    r = requests.post(url_post_pic,data=playload,files = files)
    

    如果正常,结果会像下面这样:

    注:requests的具体用法请参考[requests文档](http://docs.python-requests.org/en/master/)
  • 相关阅读:
    Cygwin下载Make
    OFDM技术的基本原理
    HNode B全面提升运营商竞争力
    定制JeOS
    什么是以太网
    Outlook Favorite Folder missing
    OFDM信号发送接收原理解析
    tgtsvr error: Cannot contact Wind Registry on host
    Windows Live Messenger去除广告 zz
    OO Unit4总结 & 结课总结
  • 原文地址:https://www.cnblogs.com/taceywong/p/5436055.html
Copyright © 2020-2023  润新知