ktmud
V2EX  ›  微信

搞了个微信机器人,求大家调戏!可以查天气,可以成语接龙……

  •  
  •   ktmud · Nov 26, 2012 · 20766 views
    This topic created in 5099 days ago, the information mentioned may be changed or developed.
    用微信公众平台的开放信息接口,用 nodejs 搞了个自动回复的机器人。主要功能部分做成了 npm 模块,回复规则可以自定义。

    源码放在了 github 上:
    https://github.com/ktmud/weixin-robot

    目前维护的是豆瓣同城的官方微信:douban-event ,可以直接发送位置查找附近活动。




    另外还蛋疼地做了一些额外功能,比如查天气和成语接龙:




    然后因为自定义回复很简单,所以还写了很多自动回复的对话:



    当机器人的感觉真的很好玩啊……

    求大家前往调教,以便正式推广前,它能回答的问题能更多一些~
    41 replies  •  1970-01-01 08:00:00 +08:00
    wyx
    wyx
    Nov 26, 2012
    1
    嘿,请问他回复的信息是怎么产生的呢?
    ktmud
    ktmud
    OP
    Nov 26, 2012
    2
    @wyx 人工编辑的…… =。=

    不涉及任何人工智能,全部是正则表达式指定的死规则。优点是写起来很方便,缺点当然是不够高级…… 不过因为加了“操作等待模式”,所以基本的对话需求都可以通过自定义回复程序来满足。
    wyx
    wyx
    Nov 27, 2012
    3
    还是不懂你什么意思,不然我问 你知道我是谁么? 它能给出回复么? 我没看你们的代码,不过我建议专门把这部分抽象出来,以后好进一步开发
    vilicvane
    vilicvane
    Nov 27, 2012
    4
    哈哈, 好久不见, 居然在这里碰倒了.
    money
    money
    Nov 27, 2012
    5
    感觉很好玩,好想学
    manhere
    manhere
    Nov 27, 2012
    6
    加入AIML就更好玩了
    passluo
    passluo
    Nov 27, 2012
    7
    顶楼主
    imom0
    imom0
    Nov 27, 2012
    8
    已调戏。
    发送位置返回附近活动挺赞的。
    ktmud
    ktmud
    OP
    Nov 27, 2012
    9
    @wyx 就是属于穷举法,把用户可能发送的消息都列出来,然后人工编辑回复。。。 很低级的

    https://github.com/ktmud/weixin-robot/tree/master/examples/dialogs
    ktmud
    ktmud
    OP
    Nov 27, 2012
    10
    @manhere =.= 其实我没听说过这个,回头研究一下!
    bullda
    bullda
    Nov 27, 2012
    11
    怎么和某个微信帐号关联?求一个更详细一点的README。
    blank_dlh
    blank_dlh
    Nov 27, 2012
    12
    前段时间也搞了个查天气的 支持输入名称和发送地理位置 感觉比较坑爹没敢发出来- -
    ktmud
    ktmud
    OP
    Nov 27, 2012
    13
    @blank_dlh 好吧。。。我脸皮比较厚,呵呵呵
    blank_dlh
    blank_dlh
    Nov 27, 2012
    14
    @ktmud 嘿嘿 你这个好多了啊-- 我那个纯属闲的蛋疼
    eallern
    eallern
    Nov 27, 2012
    15
    楼主啊,你这功能还不如 微信里的哆啦A梦好玩 在微信里,ID 是:dlam888

    回复很有意思。。。。。大家也可以去玩玩看。。
    Tiny
    Tiny
    Nov 27, 2012
    16
    兄弟 原来你在这里~
    thisisvoa
    thisisvoa
    Nov 27, 2012
    17
    是不是用node js 实现的
    liuyl
    liuyl
    Nov 29, 2012
    18
    fromUser和toUser,都是不可读的格式么?没办法搞成明文?
    nodexy
    nodexy
    Nov 29, 2012
    19
    有学习能力么? 这个很关键啊
    ktmud
    ktmud
    OP
    Nov 29, 2012
    20
    @liuyl 没办法吧,微信的策略,我也不知道是不是因为要保密还是怎样……
    ktmud
    ktmud
    OP
    Nov 29, 2012
    21
    @nodexy 可以另外写一个模块做这种事,现有的只是一个单纯的回复系统,也想保持这种单纯
    liuyl
    liuyl
    Nov 30, 2012
    22
    @ktmud 估计是不想让公众账号直接发消息给私人账号?那设置一下权限就好了。搞成这样挺不方便的
    nasa
    nasa
    Dec 1, 2012
    23
    多谢 正在学习你的源码 :)
    anyforever
    anyforever
    Dec 4, 2012
    24
    挺喜欢这个开源产品的,可以学习一下了。可是node.js还没装上呢,config的时候总是提示某句话语法错误 -_-|||

    源码还不太明白怎么用,希望有更详细点的文档,怎么二次开发之类的。就更好了。
    ktmud
    ktmud
    OP
    Dec 6, 2012
    25
    @anyforever github 上的源码更新了一下,给 examples/ 添加了一点注释,你可以再看看
    anyforever
    anyforever
    Dec 6, 2012
    26
    @ktmud 谢谢,我去看一下
    plan9
    plan9
    Dec 6, 2012
    27
    为什么我登录不了微信公众平台
    没有遇到跟我一样问题的人么
    nasa
    nasa
    Dec 11, 2012
    28
    @ktmud 谢谢更新了注释。
    heloo
    heloo
    Dec 11, 2012
    29
    很有意思, 可以先简单分词一下, 在做匹配
    nasa
    nasa
    Dec 12, 2012
    30
    @ktmud 非常感谢更新了搜索的例子。
    zhangkai_ch
    zhangkai_ch
    Dec 31, 2012
    31
    学习一下。
    wzxjohn
    wzxjohn
    Jan 1, 2013
    32
    @ktmud 为什么我想运行的时候总是提示我
    module.js:340
    throw err;
    ^
    Error: Cannot find module 'debug'
    我已经安装了debug模块啊纠结。。。
    ktmud
    ktmud
    OP
    Jan 5, 2013
    33
    @wzxjohn 你是在哪儿运行?有试过执行 `npm install` 么?
    wzxjohn
    wzxjohn
    Jan 5, 2013
    34
    @ktmud 自己的VPS。试过了,木有用。。。还是提示
    module.js:340
    throw err;
    ^
    Error: Cannot find module 'debug'
    at Function.Module._resolveFilename (module.js:338:15)
    at Function.Module._load (module.js:280:25)
    at Module.require (module.js:362:17)
    at require (module.js:378:17)
    at Object.<anonymous> (/root/lib/robot.js:1:75)
    at Module._compile (module.js:449:26)
    at Object.Module._extensions..js (module.js:467:10)
    at Module.load (module.js:356:32)
    at Function.Module._load (module.js:312:12)
    at Module.require (module.js:362:17)
    ktmud
    ktmud
    OP
    Jan 6, 2013
    35
    @wzxjohn 你是把这个作为一个 npm 模块在你自己的代码里跑,还是直接在 weixin-robot 的根目录下 npm start 跑的示例?无论如何,请确认你的 package.json 的 dependencies 里面有 debug 模块
    wzxjohn
    wzxjohn
    Jan 6, 2013
    36
    @ktmud 直接在根目录下跑的。话说这个能放到AppFog上跑么?
    我直接把Git上的源码Clone下来npm install 然后npm start,提示我:
    sh: 1: supervisor: not found
    npm ERR! [email protected] start: `supervisor --debug examples/app.js`
    npm ERR! `sh "-c" "supervisor --debug examples/app.js"` failed with 127
    npm ERR!
    npm ERR! Failed at the [email protected] start script.
    npm ERR! This is most likely a problem with the weixin-robot package,
    npm ERR! not with npm itself.
    npm ERR! Tell the author that this fails on your system:
    npm ERR! supervisor --debug examples/app.js
    npm ERR! You can get their info via:
    npm ERR! npm owner ls weixin-robot
    npm ERR! There is likely additional logging output above.

    npm ERR! System Linux 3.2.0-29-generic-pae
    npm ERR! command "nodejs" "/usr/bin/npm" "start"
    npm ERR! cwd /root/weixin-robot
    npm ERR! node -v v0.8.16
    npm ERR! npm -v 1.1.69
    npm ERR! code ELIFECYCLE
    npm ERR!
    npm ERR! Additional logging details can be found in:
    npm ERR! /root/weixin-robot/npm-debug.log
    npm ERR! not ok code 0
    ktmud
    ktmud
    OP
    Jan 7, 2013
    37
    @wzxjohn 你应该总是使用自己的项目目录 https://github.com/ktmud/weixin-robot/wiki/Usage
    wzxjohn
    wzxjohn
    Jan 9, 2013
    38
    @ktmud 试了各种方法。。。怎么弄都不行。。。。。。。。。跪了。。。
    wzxjohn
    wzxjohn
    Jan 9, 2013
    39
    @ktmud 我勒个去。。。这次居然成功了。。。直接git clone,npm install,npm start就好了。。。
    ry_wang
    ry_wang
    Aug 15, 2013
    40
    @ktmud 请问这种功能是必须要微信公众服务号么? 订阅号可以进行这个操作么?谢谢。
    ktmud
    ktmud
    OP
    Aug 19, 2013
    41
    @ry_wang 这个功能可以用的时候还没有订阅号和服务号的区别
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   2680 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 72ms · UTC 04:21 · PVG 12:21 · LAX 20:21 · JFK 23:21
    ♥ Do have faith in what you're doing.