• 在个人微信上与自搭服务端交互


    背景

    我有时候想捣鼓个工具用。起初是为了让我及时掌握一些信息,想做一个消息推送功能。但是由于功能简单,不想单独开发个手机 APP。于是就想着能否直接把消息推送到个人微信上。

    面临的问题

    以前有 web 版的个人微信,有些人就基于 web 版的个人微信接口做了一个开发套件。但是现在 web 版只有少数一些微信号能够登录,我就登录不了。

    另一种方式是申请公众号,使用公众号的消息推送。但是公众号主要是对关注者的,只用来给我自己推送消息不太合适。而如果在公众号上增加一些其他功能,等于是把功能开放给所有关注的人了,没什么必要。

    后来我才知道公众号的消息推送有次数限制,不过对于个人使用已经足够了。

    最终采取的方案是通过企业微信把消息推送到个人微信。

    实现后的消息流向

    个人微信 -> 企业微信 -> 个人服务器
    个人微信 <- 企业微信 <- 个人服务器

    实现步骤

    1. 在企业微信手机端上创建企业(不会核实真实企业)
    2. 在企业微信web端管理页面通过个人微信扫码绑定企业的微信插件
    3. 在web端管理页面上创建应用
    4. 在个人服务器上启动服务
    5. web端管理页面设置应用接收信息的 API 地址
    6. 在个人微信上收发消息

    1. 在企业微信上创建企业

    以手机企业微信为例,菜单依次如下:

    我 | 设置 | 管理企业 | 全新创建企业 | 企业

    • 填写企业名称
    • 行业类型根据需要选择
    • 员工规模选择1-50人
    • 真实姓名填写自己的姓名

    点击创建就能创建成功了。

    2. 绑定插件

    上一步创建企业后,会自动将当前帐号切换到这个企业(之后可以来回切换)。

    电脑浏览器访问:

    https://work.weixin.qq.com/wework_admin/frame#profile/wxPlugin

    在切换到新创建的企业后,用企业微信的扫码登录。

    登录后会自动跳转到【微信插件】功能页。可以看到下图那样的页面。

    用个人微信扫【邀请关注】一栏的二维码。关注后,个人微信会绑定该企业。如果企业微信加入了多个企业(如正在任职的企业),不用担心会绑定到这些企业上。

    3. 创建应用

    电脑浏览器访问:

    https://work.weixin.qq.com/wework_admin/frame#apps

    进入应用管理模块。

    依次访问:

    应用 | 自建 | 创建应用

    如下图:

    填写页面要求的信息,记得在可见范围里把自己选上。

    创建成功后,进入应用页面可以看到以下信息:

    • AgentId
    • Secret
    • 功能 | 接收消息 | 设置API接收

    其中标记 2 的 Secret 是企业的密码。在请求企业微信接口的时候,要使用企业 ID 和应用密码获取 Token。

    接着进入应用页面里标记 3 的【设置API接收】。

    注意这里的 Token 仅用于计算签名,和请求企业微信接口时用于验证身份的 Token 不是同一个,因此随机获取就行。

    URL 按以下格式填写:

    http://IP:端口/qiye-wechat/agents/应用的AgentId
    

    这里的 IP 和端口设置为个人服务器的 IP,以及即将在下一步启动服务时开放的端口。

    Token 和 EncodingAESKey 随机获取或者自己填都行。

    填完之后先不点保存,等到下一步【启动服务】执行完后再保存。因为保存的时候。企业微信会向上面的 URL 发送一个请求验证。

    4. 启动服务

    登录个人服务器,下载下面这个项目:

    https://github.com/schaepher/noty

    进入项目文件夹,复制一份 config.json.example 到 config.json。初始内容为:

    {
        "addr": "127.0.0.1:55556",
        "corp_id": "",
        "agents": [
            {
                "id": 1000002,
                "secret": "",
                "token": "",
                "encoding_aes_key": "",
                "type": "echo"
            }
        ]
    }
    

    corp_id 是企业的 ID。通过以下链接页面底部获取:

    https://work.weixin.qq.com/wework_admin/frame#profile

    在 agents 里面,填写刚刚创建的应用的信息。其中 secret 是通过应用界面的 Secret 一栏进入获取的。也就是下图的标记 2。

    type 是 agent 类型,与企业微信无关,与本项目 qiyewechat 文件夹里 agent.go 的 AgentFactory 有关。默认为 echo,作用是个人微信发什么,服务器就返回什么。

    接下来是编译和运行。

    go build
    ./noty
    

    5. 配置企业微信

    回到刚才的【设置API接收】界面,点击保存。此时企业微信会发一条验证信息到服务器,如果通过,就能成功保存。

    保存成功后,在这个页面下方的【企业可信IP】卡片里选择配置,将刚刚填入到 URL 的服务器 IP 添加进去。这样之后服务器才能主动调用企业微信的 API。

    6. 个人微信收发消息

    在个人微信的【我的企业及企业联系人】分组中,找到企业。进入后可以看到应用,发送消息即可。

  • 相关阅读:
    交叉编译OpenCV的教程——基于aarch64-linux-gnu的交叉编译器
    Day01:我的Python学习之路
    将中文库导入到ARM板子中以解决中文显示乱码的教程
    Linux环境下挂载SD卡的教程
    Ubuntu下压缩与解压各种文件的命令
    Ubuntu14.04环境下Qt5.5以上版本无法输入中文的解决教程
    编程之美:队列中的最大最小值
    leetcode:Compare Version Numbers
    leetcode:Search for a Range
    csapp:无符号数可能造成的程序bug
  • 原文地址:https://www.cnblogs.com/schaepher/p/16424963.html
Copyright © 2020-2023  润新知