• 用 Python 自动发微博


    虽然微博官方有Python SDK,但是下载链接竟然失效了??在Pypi找到一个库——weibo,貌似还不错

    安装weibo库

    pip install weibo 报错 “ERROR: Command errored out with exit status 1: python setup.py egg_info Check the logs for full command output”

     查看报错的行数,刚好是我昨天遇到的一个问题,打开文件时没有指定编码方式,使用的默认为gbk编码,而源码中出现了gbk无法编码的字符。

    解决方法也很简单,下载压缩包,解压,在报错位置添加 encoding='utf-8'

    再压缩,使用 pip install weibo-0.2.2.zip 安装。

    获取access_token

    官方文档:https://pypi.org/project/weibo/

    需要先创建应用:微连接-->移动应用-->立即接入,

    填写基本信息,能得到App Key和App Secret即可。

    要获取access_token还必须在高级设置-->授权回调页填入url(可以随便填,反正用户是不可见的)

    >>> from weibo import Client
    >>> c = Client(API_KEY, API_SECRET, REDIRECT_URI)
    >>> c.authorize_url
    'https://api.weibo.com/oauth2/authorize?redirect_uri=http%3A%2F%2F127.0.0.1%2Fcallback&client_id=123456'

    复制链接到浏览器打开,获取 code.

    >>> c.set_code('abcdefghijklmn')

    client 初始化完成。token 可以被保存下来供下次调用时直接使用。

    >>> token = c.token
    >>> c2 = Client(API_KEY, API_SECRET, REDIRECT_URI, token)
    >>> c2.get('users/show', uid=token['uid'])

    还有一种调用方式,不需要先获取token,而是使用密码:

    >>> from weibo import Client
    >>> c = Client(API_KEY, API_SECRET, REDIRECT_URI, username='admin', password='secret')
    >>> c.get('users/show', uid=token['uid'])

    自动发送微博

    显然,这个weibo库只是对原生API进行封装,原生API作出的限制仍然存在。

    所以需要去设置一个安全域名,

    其他的信息还好,Android签名包名信息实在不会,网上随便找个填进去,居然OK!

    Android包名:com.kfgame.yinzijianggggg
    Android签名:ab6de671ab6de671ab6de671ab6de671

    安全域名也可以随便填,我填的www.baidu.com

    from weibo import Client
    
    API_KEY = 'xxx'
    API_SECRET = 'xxx'
    REDIRECT_URI = 'https://www.cnblogs.com/lfri/'
    token = {
        'access_token': 'xxx', 
        'remind_in': '157679999', 
        'uid': 'xxx', 
        'isRealName': 'true', 
        'expires_at': 1736993116
        }
    
    c = Client(API_KEY, API_SECRET, REDIRECT_URI, token)
    c.post('statuses/share', status='衡阳天气' + 'https://www.baidu.com/s?tn=baidutop10&rsv_idx=2&wd=%E8%A1%A1%E9%98%B3%E5%A4%A9%E6%B0%94%E9%A2%84%E6%8A%A5')

    效果:

     “来自 未通过审核应用”,这是因为还没有审核,不过不影响使用。

    参考链接:

    1. Python报错ERROR: Command errored out with exit status 1

    2. 微信申请 包名和签名

    3. 用 Python 自动定时发微博

  • 相关阅读:
    在web应用中使用MEF插件式开发
    IBatis更名为mybatis
    ssh公钥登录
    android摄像头获取图像——第二弹
    android摄像头获取图像——第一弹
    堆排序
    配置开发环境及相关问题
    android摄像头获取图像——第三弹
    冒泡排序
    Linux中环境变量文件及配置
  • 原文地址:https://www.cnblogs.com/lfri/p/12207767.html
Copyright © 2020-2023  润新知