V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
tianzhidao28
V2EX  ›  微信

微信自动群发(有图有真相)

  •  
  •   tianzhidao28 · 2015-12-13 08:20:23 +08:00 · 12259 次点击
    这是一个创建于 3266 天前的主题,其中的信息可能已经有所发展或是发生改变。

    微信群发助手

    标签(空格分隔): 微信 chrome 插件


    前天偶然看了下 angularjs
    发现 微信网页版 已经改成是 angularjs 写的了
    那我原来写的 JS 版群发岂不是没用了,fuck!

    于是在一个弹幕扩展上改写成了 微信群发助手

    使用方法

    1.安装插件
    2.登录 web 微信
    3.点击 右上角小人
    4.输入群发文字
    5.如果第一次没成功 就再试一次

    此处输入图片的描述

    此处输入图片的描述

    原理

    • angular js 操作页面元素

    等哥写好了 angular js 脚本群发成功后,发现插件运行的环境和页面运行的环境根本是隔离的,换言之插件根本取不到页面上的 angular js 对象,

    再者就是 插件和页面该怎么通讯呢.

    后期

    • 群发消息:(加各种分组群发)(假如你是 hr,一大波人需要你在微信回复 面试消息地点什么的,假如你要发个什么通知什么的)
    • 个性化消息回复. (对于 一些常见问题的答案,比如你是某个活动方举办单位,就有人在某个你特别忙的时间点问你 时间 地点啊 具体安排啊什么的,)
    • 自动问答 客服什么的

    赞助

    email:[email protected]

    下载地址在 1 楼

    第 1 条附言  ·  2015-12-15 14:23:14 +08:00

    忘了 打广告了 失策!

    qrcoe

    50 条回复    2016-01-14 13:49:22 +08:00
    tianzhidao28
        1
    tianzhidao28  
    OP
       2015-12-13 08:26:21 +08:00
    nimingyonghu
        2
    nimingyonghu  
       2015-12-13 08:56:49 +08:00 via iPhone
    好奇下载地址在一楼是哪里的传统啊?
    welly
        3
    welly  
       2015-12-13 08:59:00 +08:00
    收藏了 谢谢~
    oott123
        4
    oott123  
       2015-12-13 09:11:38 +08:00 via Android
    @nimingyonghu 贴吧吧
    SourceMan
        5
    SourceMan  
       2015-12-13 09:37:46 +08:00 via iPhone
    其他论坛
    nimingyonghu
        6
    nimingyonghu  
       2015-12-13 10:16:23 +08:00 via iPhone
    @oott123 一楼给 Livid 娘?
    dreammes
        7
    dreammes  
       2015-12-13 10:33:49 +08:00 via iPhone
    有图有真相
    zxb
        8
    zxb  
       2015-12-13 10:35:25 +08:00 via Android   ❤️ 1
    楼主的通讯录亮了
    wuxiaomo
        9
    wuxiaomo  
       2015-12-13 10:52:09 +08:00
    @zxb 我也觉得~~~
    wuxiaomo
        10
    wuxiaomo  
       2015-12-13 10:52:45 +08:00
    东西很亮,不过通信录更亮
    jaylong
        11
    jaylong  
       2015-12-13 11:23:36 +08:00
    确认这不是陌陌通讯录?^_-
    @wuxiaomo
    ether
        12
    ether  
       2015-12-13 12:47:44 +08:00
    Sex=1 是上过一次, Sex=2 是上过两次?
    miao
        13
    miao  
       2015-12-13 12:53:41 +08:00 via Android
    微信默认不就有群发功能?
    tianzhidao28
        14
    tianzhidao28  
    OP
       2015-12-13 13:04:14 +08:00
    这个是给每一个最近联系人一人一人的自动发消息,暂时 限定为最近联系人,可以随便改的,累了 懒得写前端去改了
    tianzhidao28
        15
    tianzhidao28  
    OP
       2015-12-13 13:05:18 +08:00
    @ether 我擦 很显然 是 男和 女的区别
    tianzhidao28
        16
    tianzhidao28  
    OP
       2015-12-13 13:10:00 +08:00
    核心功能代码:
    原谅一个刚看 angularjs 写的 js 代码:
    ···

    $editAreaScope=angular.element('#editArea').scope();
    $_00dScope=angular.element('#navContact>div').scope();
    $_00dScope.dblclickCallback(contact); //用简单的 JS 也可以让其自动点击
    $_00dScope.$apply();

    $editAreaScope.editAreaCtn = msg;
    $editAreaScope.$apply();
    $editAreaScope.sendTextMessage();

    ···
    tianzhidao28
        17
    tianzhidao28  
    OP
       2015-12-13 13:16:00 +08:00
    @nimingyonghu 是刚好写完 markdown 说明的文档发现忘了没地方下载;
    本想发布在官网的,好吧 第一次用要支付 5 刀 发现我没蛮夷们的支付方式 ,遂弃之
    cyio
        18
    cyio  
       2015-12-13 13:47:14 +08:00
    @tianzhidao28 可以先把源码扔在 github ,反正给个 crx , chrome 也是拒绝直接安装的。我都是 clone 或者解压出来,顺便看下源码。
    think2011
        19
    think2011  
       2015-12-13 14:31:40 +08:00
    想起两年前写的微信群发,是模拟行为的方式做的。
    https://github.com/think2011/webchatHelper/blob/master/img/demo.gif
    tianzhidao28
        20
    tianzhidao28  
    OP
       2015-12-13 14:34:10 +08:00
    @think2011 看到你这个了 写的不错,我刚看 angular js
    tianzhidao28
        21
    tianzhidao28  
    OP
       2015-12-13 14:40:03 +08:00
    @think2011 你自己注入了 angular js 挺不错的 当时看了一些插件说明 哎 发现我写的直接在浏览器里运行的的代码 难以写成插件,然后用了一个感觉不怎么好的方式,直接把基于页面 angular js 的代码 注入到页面里去了 然后通过页面上 聊天页元素的变化 让插件知道有消息要发,感觉不怎么好,暂时没想到 怎么也插件的运行环境里 得到 页面上的 angular 对象,感觉这个也做不到
    Daddy
        22
    Daddy  
       2015-12-13 14:48:23 +08:00   ❤️ 1
    @tianzhidao28 我更擦 男和 女的区别很显然是用 0 和 1 ,不单形象还符合计算机逻辑,用 1 和 2 完全不懂
    tianzhidao28
        23
    tianzhidao28  
    OP
       2015-12-13 14:50:20 +08:00
    @cyio
    $chatScope=angular.element('div[nav-chat-directive]').scope();

    var chatListArr=$chatScope.chatList ;得到联系人列表

    再写个 for 循环 + 上面的 发送代码 ,这个也是可以直接运行的

    就等价整个插件的代码
    tianzhidao28
        24
    tianzhidao28  
    OP
       2015-12-13 14:50:59 +08:00
    @cyio 花了 2-3 边学边写 太烂 就不献丑了
    tianzhidao28
        25
    tianzhidao28  
    OP
       2015-12-13 14:52:19 +08:00
    @Daddy 解析的网页啊 不是我啊 我的话 就 0 男 1 女喽 那是微信上定义的 0 代表 群
    tianzhidao28
        26
    tianzhidao28  
    OP
       2015-12-13 14:54:02 +08:00
    @miao 微信上那个群发 是 建个临时群 发送 1 条消息 ???
    miao
        27
    miao  
       2015-12-13 14:59:12 +08:00
    @tianzhidao28 不是, 安卓版 --> 我 --> 设置 --> 通用 --> 功能 --> (开启)群发助手 --> 开始群发.
    可以有选择性的群发所有微信好友
    tianzhidao28
        28
    tianzhidao28  
    OP
       2015-12-13 15:13:26 +08:00
    @miao 我都不知道有这个按钮饿 哦 这个也是 类似 js 操作网页 也有 hook 什么的操作 Android 上的按钮。。。也是个插件 app ?
    miao
        29
    miao  
       2015-12-13 15:48:10 +08:00
    @tianzhidao28 微信默认功能. 至于它怎么开发,用什么开发的, 我就不清楚了
    Showfom
        30
    Showfom  
       2015-12-13 17:02:18 +08:00 via iPhone
    不错
    wuhanpizi
        31
    wuhanpizi  
       2015-12-13 18:07:20 +08:00
    不错 很赞
    tianzhidao28
        32
    tianzhidao28  
    OP
       2015-12-13 18:58:38 +08:00
    @miao 不可能 我的 Android 微信怎么没有这个选项。。。。。
    tianzhidao28
        33
    tianzhidao28  
    OP
       2015-12-13 18:59:36 +08:00
    @cyio 从这个页面 chrome://extensions/ 拖进去
    BROWNURSIDAE
        34
    BROWNURSIDAE  
       2015-12-13 19:06:24 +08:00
    @tianzhidao28 有的。。。你要开启功能里面的群发助手。。。
    miao
        35
    miao  
       2015-12-13 20:05:52 +08:00
    @tianzhidao28 安卓版微信 --> 我 --> 设置 --> 通用 --> 功能 --> (未启用的功能 下面) --> 群发助手

    https://ooo.0o0.ooo/2015/12/13/566d5f7c126d6.jpg
    septxiao
        36
    septxiao  
       2015-12-13 20:25:58 +08:00
    @ether
    哈哈哈哈哈哈!!!
    Daddy
        37
    Daddy  
       2015-12-14 00:17:07 +08:00   ❤️ 1
    @tianzhidao28 汗,怎么可能是 0 男 1 女这么定义,肯定是 0 女 1 男,这么形象的事情,还会弄错,羞羞
    nareix
        38
    nareix  
       2015-12-14 00:17:41 +08:00
    好货!

    另外 lz 给解释下 sex=1 , sex=2 ,还有那个 not in 是啥意思吧
    nareix
        39
    nareix  
       2015-12-14 00:22:07 +08:00
    插件的 popup.html 和页面通信用 chrome.runtime.sendMessage 和 onMessage
    tianzhidao28
        40
    tianzhidao28  
    OP
       2015-12-14 00:48:23 +08:00
    @Daddy 原来。。。。。。。。 那啥我从记事起 就是 0 男 1 女 天地良心 我这么纯洁的少年
    tianzhidao28
        41
    tianzhidao28  
    OP
       2015-12-14 00:51:48 +08:00
    @nareix 哦 我标示下不同的人的数据特征作的记号 not in 是我不在其好友列表 sex=0 代表微信群组 sex=1 女 sex=2 代表男

    chrome.runtime.sendMessage 这个是插件自己和自己通信 如果要和页面里注入的那段代码通信呢
    tianzhidao28
        42
    tianzhidao28  
    OP
       2015-12-14 01:02:56 +08:00
    @miao 居然真有。。。。。一直没发现
    nareix
        43
    nareix  
       2015-12-14 01:02:57 +08:00
    页面注入的那段代码属于插件的一部分,也是可以的
    tianzhidao28
        44
    tianzhidao28  
    OP
       2015-12-14 01:06:50 +08:00
    @nareix 不是 我是说,比如 我注入的说 xx.js 是 xx.js 里面和插件的通讯...这个梗
    nareix
        45
    nareix  
       2015-12-14 01:27:09 +08:00
    @tianzhidao28 你是通过 ContentScript 的方式把 xx.js 注入进去的对吧?
    tianzhidao28
        46
    tianzhidao28  
    OP
       2015-12-14 11:12:27 +08:00
    @nareix 1. ContentScript 的运行环境 和 页面的 JS 应该不是一个环境 ? (不是很熟 我也不确定,按道理应该不是)
    2 xx.js 我是直接 写到 xx.js 所在页面里了 $(body).append("<script ......></>") 这个
    nareix
        47
    nareix  
       2015-12-14 13:14:53 +08:00
    @tianzhidao28

    是一个环境的,应该可以获取到 angular 的啊
    可能是因为延迟加载的机制吧
    tanteng
        48
    tanteng  
       2015-12-16 22:17:16 +08:00
    我怎么没收到
    tianzhidao28
        49
    tianzhidao28  
    OP
       2015-12-17 01:58:38 +08:00
    @tanteng 哥测试 肯定用小号啊 擦 ,已经被无数人拉黑 深更半夜从凌晨 0 点到凌晨 8 点 隔几分钟就发几十条
    kandahai
        50
    kandahai  
       2016-01-14 13:49:22 +08:00
    灰常的厉害啊
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1173 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 18:12 · PVG 02:12 · LAX 10:12 · JFK 13:12
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.