美文网首页
基于树莓派的微信机器人(更新 API)

基于树莓派的微信机器人(更新 API)

作者: yi_yun | 来源:发表于2018-09-26 22:16 被阅读0次

    对该项目不了解的朋友可先阅读爬坑指南(一)

    背景

    因为系统开发与设计需要提交个人作业,但说来惭愧,手头上没有拿的出来的作品,只能将树莓派机器人交上去。

    不看还好,一看吓一跳,图灵 API 失效,点歌功能失效,我还把物联网的器件交给了老师···看样子要更新代码不是一件很容易的事啊。事实证明,果然如此,这次相当于我基于原来的框架又重新写了一遍

    更新说明

    图灵机器人 V2.0

    这里是个大坑,让我头疼了很久,在这耗费了大量时间

    • 坑一:格式
      更新后的图灵机器人在命令行中要采用 POST 方式, JSON 的参数这样的形式才生效

      官网示例
      这么复杂的东西,不复制到代码里然后修改很容易出错
    • 坑二:返回参数
      看下面这段代码,不经过测试,鬼知道怎么读取

     try:
            res = requests.post(url=apiUrl, data=json.dumps(data))
            b = res.json()
            print(b)
            return b['results'][0]['values'][b['results'][0]['resultType']]       
        except Exception:
            return "我无法理解【%s】的含义" % msg
    
    • 坑三:原来的机器人不能用
      官网没有任何提示(可能有,反正我没看到)我一直再用老版本机器人,提示加密方式错误,提交反馈也没人理我,网站还用的 http
      一开始我以为是实名认证的锅,提交了身份认证,足足让我等了两个礼拜才通过?!通过后仍然报错,摸索了很久,试了很多方法,一气之下新建机器人才算搞定
      总之,用图灵机器人 V2.0API 一定要新建机器人

    点歌播放

    也就三个月,小豆机器人的点歌 API 失效了.无奈只好重新寻找,皇天不负有心人,在经过一日一夜的寻找,在某网站发现了老版网易云的根据歌名得到 ID 的链接,得到 ID 就可以拼接链接,用 mplayer 播放

    import requests
    import json
    def get_musicurl(text):
        try:
            url = 'http://s.music.163.com/search/get/?src=lofter&type=1&filterDj=true&s='+text+'&limit=2&offset=0&callback=loft.w.g.cbFuncSearchMusic'
            res = requests.get(url)
            j = json.loads(res.text[27:-1])
            id = j['result']['songs'][0]['id']
            _url = 'http://music.163.com/song/media/outer/url?id='+str(id)+'.mp3'
            return _url
        except Exception:
            return "我找不到歌名【%s】" % text
    

    图床功能

    博客嘛,图床是不可避免的。但是 iOS 只有 SM.MS,没有腾讯云的对象存储。有了需求,加上官网上的文档,功能就出来了。不过环境需要在本地配置。当然也可以将相关的密钥参数用模块的形式导入

    优化

    去除了原先冗杂的抛异常代码以及小豆机器人失效的功能,使功能更加健全

    例如可以输入 明天杭州到武汉的火车 查询相关信息

    项目总结

    项目地址(将原有的分支改为主分支,master 变为副分支)

    其实正确的做法应该在原来的基础上新建分支然后合并,而不是在本地上更改完以后提交代码,有所欠缺。

    相关文章

      网友评论

          本文标题:基于树莓派的微信机器人(更新 API)

          本文链接:https://www.haomeiwen.com/subject/rktsoftx.html