V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
HanSonJ
V2EX  ›  分享创造

php7 版本的微信机器人来了!(这应该是最灵活的版本了)

  •  4
     
  •   HanSonJ ·
    HanSon · 2017-01-19 10:02:57 +08:00 · 8771 次点击
    这是一个创建于 2867 天前的主题,其中的信息可能已经有所发展或是发生改变。

    Vbot是基于微信 web API 实现的机器人,通过实现匿名函数能够实现多种自定义的效果

    例如:

    • 消息转发
    • 红包提醒(有点鸡肋)
    • 留言统计
    • 自定义回复
    • 防撤回
    • 特殊关键词触发事件

    等等,这里就不一一列举,可以参考 详细例子

    安装

    composer require hanson/vbot

    使用

    require_once __DIR__ . './../vendor/autoload.php';
    
    use Hanson\Vbot\Foundation\Vbot;
    
    function reply($reply){
        return http()->post('http://www.tuling123.com/openapi/api', [
            'key' => 'your tuling api key',
            'info' => $reply
        ], true)['text'];
    }
    
    $robot->server->setMessageHandler(function ($message) {
        // 文字信息
        if ($message instanceof Text) {
            // 联系人自动回复
            if ($message->fromType === 'Contact') {
    
                return reply($message->content);
                // 群组 @我回复
            } elseif ($message->fromType === 'Group' && $message->isAt) {
                
                return reply($message->content);
            }
        }
    });
    
    $robot->server->run();
    
    

    项目地址:https://github.com/hanson/vbot

    欢迎大家提交 issue 和 PR 让 vbot 更加完善

    也可以加我刚新建的 QQ 群进行交流: 492548647

    第 1 条附言  ·  2017-01-19 11:37:40 +08:00
    大家收藏信息真多,就是不绑定

    是因为我没喊口号么。

    PHP 是世界上最好的语言!

    顺带附个文档链接 https://github.com/HanSon/vbot/wiki
    第 2 条附言  ·  2017-01-19 20:42:00 +08:00
    感谢大家支持, https://github.com/trending/php ,现在 github php 上升榜中第一了
    52 条回复    2017-06-09 00:31:13 +08:00
    HanSonJ
        1
    HanSonJ  
    OP
       2017-01-19 10:04:04 +08:00
    尴尬,太激动发错分类了

    @livid move to [/go/create](/go/create)
    Ricky123
        2
    Ricky123  
       2017-01-19 10:07:32 +08:00
    "防撤回"

    这个不太好吧?
    HanSonJ
        3
    HanSonJ  
    OP
       2017-01-19 10:08:37 +08:00
    @Ricky123 功能是有的,如何使用就看开发者了
    Livid
        4
    Livid  
    MOD
       2017-01-19 10:08:49 +08:00   ❤️ 1
    @HanSonJ 为你移动好了。
    HanSonJ
        5
    HanSonJ  
    OP
       2017-01-19 10:09:28 +08:00
    @Livid 谢谢
    NxnXgpuPSfsIT
        6
    NxnXgpuPSfsIT  
       2017-01-19 10:19:37 +08:00   ❤️ 1
    帮顶:)
    HanSonJ
        7
    HanSonJ  
    OP
       2017-01-19 10:22:44 +08:00
    @NxnXgpuPSfsIT 谢谢!感谢曾对本人耐心解答!
    blackFool
        8
    blackFool  
       2017-01-19 10:25:38 +08:00   ❤️ 1
    可以一直登陆着吗 比如十天八天的?
    loserwn
        9
    loserwn  
       2017-01-19 10:27:58 +08:00   ❤️ 1
    @HanSonJ 之前用了几个微信机器人,功能问题都不大。但是,如果做服务化的时候。微信帐号持久登录都遇到问题。感觉 keeplive 这个功能大家都没有怎么提及。
    不知道你这个版本是否有明确的测试。

    需求就是,不需要其他手机维持登录的前提下,单独靠业务代码自身维持账户登录状态,能坚持多久在线?
    HanSonJ
        10
    HanSonJ  
    OP
       2017-01-19 10:30:40 +08:00
    @loserwn
    @wangruijie2009

    感谢你们提到这个问题,也让我意识到要真正实现商业价值持久化登录是必不可少的一点,我会针对这点去测试,感谢
    batnss
        11
    batnss  
       2017-01-19 10:35:04 +08:00
    @HanSonJ 每 5s 检查下是否还登录着, 被退了通过某种方式提醒该扫二维码了,通过某种方式发送新的二维码给用户,让他扫一下再次登录
    HanSonJ
        12
    HanSonJ  
    OP
       2017-01-19 10:36:56 +08:00
    @batnss 这个可以有,但如果一直不扫就会超时退出程序
    batnss
        13
    batnss  
       2017-01-19 10:51:19 +08:00
    @HanSonJ

    $ composer require "hanson/vbot"


    [InvalidArgumentException]
    Could not find package hanson/vbot at any version for your minimum-stability (stable). Check the package spelling or your minimum-stability


    - -
    batnss
        14
    batnss  
       2017-01-19 10:51:35 +08:00
    composer require hanson/vbot


    [InvalidArgumentException]
    Could not find package hanson/vbot at any version for your minimum-stability (stable). Check the package spelling or your minimum-stability
    HanSonJ
        15
    HanSonJ  
    OP
       2017-01-19 10:58:54 +08:00
    @batnss 应该是 composer 的缓存问题,我 window 也是这样,换了 linux 虚拟机发现是没问题的

    [http://imgur.com/a/NaM6P]( http://imgur.com/a/NaM6P)
    HanSonJ
        16
    HanSonJ  
    OP
       2017-01-19 10:59:41 +08:00
    batnss
        17
    batnss  
       2017-01-19 11:03:25 +08:00
    @HanSonJ 嗯 我再试试
    HanSonJ
        18
    HanSonJ  
    OP
       2017-01-19 11:04:20 +08:00
    @batnss 前期尝试也可以直接 clone 然后跑 composer
    HanSonJ
        19
    HanSonJ  
    OP
       2017-01-19 11:36:02 +08:00
    大家收藏信息真多,就是不绑定

    是因为我没喊口号么。

    PHP 是世界上最好的语言!
    ty89
        20
    ty89  
       2017-01-19 13:37:26 +08:00
    有转账提醒吗?有的话就可以做一个 callback 来实现在线支付自动发货啦
    HanSonJ
        21
    HanSonJ  
    OP
       2017-01-19 13:40:11 +08:00
    @ty89 消息类型有转账类型( transfer ),然后可以实现 callback 去实现你要实现的逻辑
    sunorg
        22
    sunorg  
       2017-01-19 14:28:31 +08:00
    用图灵机器人呀。。
    HanSonJ
        23
    HanSonJ  
    OP
       2017-01-19 14:34:51 +08:00
    @sunorg 哈哈哈,感觉图灵比较好用,你喜欢也可以用别的,包里没有图灵的相关代码
    HanSonJ
        24
    HanSonJ  
    OP
       2017-01-19 15:55:07 +08:00
    沉得有点快,手动置顶
    hzwei
        25
    hzwei  
       2017-01-19 16:01:20 +08:00 via Android
    技术小白一个, lz ,这个,这个我怎么使用啊?没有 APP 吗?
    odirus
        26
    odirus  
       2017-01-19 16:08:38 +08:00
    人工置顶,哈哈哈
    mansur
        27
    mansur  
       2017-01-19 16:12:03 +08:00
    从屁眼交易到拍黄片
    HanSonJ
        28
    HanSonJ  
    OP
       2017-01-19 16:14:34 +08:00
    @hzwei 这个是纯命令行的
    HanSonJ
        29
    HanSonJ  
    OP
       2017-01-19 16:35:09 +08:00
    @odirus 谢谢!也算是前辈了!
    fuxkcsdn
        30
    fuxkcsdn  
       2017-01-19 17:14:57 +08:00
    @wangruijie2009
    @loserwn
    @batnss
    @HanSonJ
    要想长时间挂机,你需要的是一台 iPhone
    我自己写的微信机器人已稳定挂机 16 天,期间我登入帐号用的 iPhone 还因为电量用光了而关机半小时,关机期间看了下机器人,既然还挂机着...

    反观另一个用 Android 登入的帐号,经常莫名其妙掉线( 1101 或 1102 ),有时候又莫名其妙提示帐号已在手机登出( 1100 )
    最后修改的版本中 Android 登入的帐号已挂机 6 天,但并不是我添加的防掉线代码起作用了

    P.S. 等仿掉线代码验证通过后再开源
    cxydhd
        31
    cxydhd  
       2017-01-19 17:15:33 +08:00
    图灵机器人..
    HanSonJ
        32
    HanSonJ  
    OP
       2017-01-19 17:43:45 +08:00
    @fuxkcsdn 好的,期待,最近我也测试一下登录的持久性问题
    gabri
        33
    gabri  
       2017-01-19 18:36:00 +08:00 via Android
    mark ,回家再 star
    HanSonJ
        34
    HanSonJ  
    OP
       2017-01-19 19:04:54 +08:00
    @gabri 感谢
    HanSonJ
        35
    HanSonJ  
    OP
       2017-01-19 21:17:10 +08:00
    @batnss 不知道你现在 composer 能安装了没有,刚刚提供了直接下载的方式 https://github.com/HanSon/vbot/releases ,在 v1.0.13 版本提供直接下载执行的方式
    batnss
        36
    batnss  
       2017-01-19 21:20:20 +08:00 via Android
    @HanSonJ 我直接 git clone + composer update
    不过运行有问题 提示联系人..成功后 用小号发消息不自动回啊 当然我改了图灵机器人那段..
    HanSonJ
        37
    HanSonJ  
    OP
       2017-01-19 21:22:10 +08:00
    @batnss 有疑问可以加群问或者提 issue 都欢迎,不然这样不清楚问题
    zjqzxc
        38
    zjqzxc  
       2017-01-20 08:38:56 +08:00
    前几天有同学因为在 x86 安卓(不是虚拟机 /模拟器)上登陆了微信,然后被微信封号且不可申诉,理由是违反用户行为规范;自己的主要微信号用这个可能需要慎重?
    HanSonJ
        39
    HanSonJ  
    OP
       2017-01-20 08:59:50 +08:00
    @zjqzxc 不轰炸就不会有事情了,你一秒钟发几条消息持续很久肯定触发违规了
    koodai
        40
    koodai  
       2017-01-20 13:22:59 +08:00 via iPad
    收到文件的信息和视频差不多吗?想改一个工具。我们行业里很多商家提供微信群的 excel 报价单,希望能自动值守,获取,导入数据库
    HanSonJ
        41
    HanSonJ  
    OP
       2017-01-20 13:25:06 +08:00
    @koodai 你可以提个 issue ,接收文件这块还为完善,但是你说的是可以做到的
    sobigfish
        42
    sobigfish  
       2017-01-20 14:22:29 +08:00
    撤回-Recall 这个最后时间是多久,超过了时间发出撤回会不会被识别为非官方的,然后被 ban
    HanSonJ
        43
    HanSonJ  
    OP
       2017-01-20 14:54:56 +08:00
    @sobigfish 撤回是指一种消息类型,并非实现撤回功能
    sobigfish
        44
    sobigfish  
       2017-01-20 15:01:33 +08:00
    @HanSonJ 哦哦,就是处理对方发出了撤回这个消息啊-。-
    主动撤回消息有 API 么?
    HanSonJ
        45
    HanSonJ  
    OP
       2017-01-20 15:11:26 +08:00
    @sobigfish 主动撤回也是会受到这个“撤回消息”的,只不过来源变成你自己而已
    RangerWolf
        46
    RangerWolf  
       2017-01-22 10:52:32 +08:00
    不知道能不能有获取当前账号收藏的内容 API?
    HanSonJ
        47
    HanSonJ  
    OP
       2017-01-22 13:05:26 +08:00   ❤️ 1
    @RangerWolf 这个应该可以,我尝试一下
    RangerWolf
        48
    RangerWolf  
       2017-01-22 16:54:41 +08:00
    @HanSonJ 希望可以 哈哈
    HanSonJ
        49
    HanSonJ  
    OP
       2017-01-26 11:19:54 +08:00
    @koodai #40 已发布最新版, v1.0.16 , 支持 文件下载
    eric13517
        50
    eric13517  
       2017-02-28 16:18:45 +08:00
    我用的一个 python 版的,下载视频有个奇怪问题, iphone 拍摄发送的小视频能正常下载, android 拍的视频下载就是 0 字节, LZ 的这个有没有这个问题?
    HanSonJ
        51
    HanSonJ  
    OP
       2017-02-28 16:22:23 +08:00
    @eric13517 #50 也有,有可能是微信网页端的问题
    hobbyliu
        52
    hobbyliu  
       2017-06-09 00:31:13 +08:00
    mac termnal 不显示二维码,确认已经开起 ANSI COLOR
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1006 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 28ms · UTC 21:42 · PVG 05:42 · LAX 13:42 · JFK 16:42
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.