一招,提高 Github 成员微信群运营效率

在这里插入图片描述

01

深度学习是未来人工智能的基石

据外媒 TechPowerUp 3 月 1 日消息,一位不愿意透露姓名的网友向他们提供了如下截图,并表示黑客公布了英伟达 DLSS 的源代码。


据报道,外泄的版本为 DLSS 2.2 版本,泄漏的信息包括构成 DLSS 的 C++ 文件、header 和 asset 信息,还有一个“编程指南”文档,以帮助开发人员理解代码并正确构建。
​
目前,英伟达已向 Hardwareluxx 发布了一份声明,正式确认了数据泄漏的事实,并表示会进一步强化网络安全,聘请网络安全事件响应专家,通知相关执法部门。安全是一个持续的过程,面对此次黑客攻击事件,英伟达将更加重视代码、产品保护和质量问题。
​
深度学习超级采样技术(DLSS) 是英伟达的“王牌”之一,属于闭源技术。该技术在游戏领域的作用是借助英伟达显卡向量核心的机器学习能力,让玩家在不花费额外成本的情况下运行更高分辨率和更高帧率的游戏。


随着 2015 年以后人工智能的爆发式发展,人工智能技术发展的前沿正在从感知智能向认知决策演进。如何通过深度学习实现 AI 模仿视听和思考等人类活动成为人工智能发展的研究核心,也是未来人工智能的基石。

深度学习的 AI 在复杂的模式化场景中甚至可以比人做得更好。

Google 的 AlphaGo 先是学会了如何下围棋,然后不断地与自己进行下棋练习,训练自己的神经网络,反反复复,永不停歇,最终在 2016 年 3 月的人机大战中,以 4:1 的总比分战胜职业九段棋手李世石。

除此之外,AI 通过学习样本数据的内在规律和表示层次,获得对诸如文字,图像和声音等数据信息的超强识别能力。从简单识别猫,到辨别血液中癌症的早期成分,甚至到识别核磁共振成像中的肿瘤,具有优秀图像识别功能的 AI 都能轻松搞定。


深度学习使得机器学习能够实现众多应用,拓展人工智能的领域范围。通过不断地深度学习,AI 可以帮助人们完成各种任务,使得近乎所有的机器辅助功能成为可能。电影图书推荐、智慧厨房,甚至是无人驾驶汽车、预防性医疗保健,都近在眼前,又或者即将实现。

02

Authing 助力 AI RPA 聊天机器人

Wechaty 是针对微信个人帐户的会话式 AI RPA(Robotic Process Automation,机器人流程自动化)聊天机器人 SDK,是由 Typescript 构建,支持个人号微信使用的 Node.js 应用,支持 Linux、Windows、macOS 和 Docker 等平台。通过使用 JavaScript、Python、Go 或 Java,只需 6 行代码即可创建机器人。

微信个人号拥有强大灵活的功能,可以不受限制地发送语音、视频、图片和文字,支持多人群聊,很适合作为 ChatBot 的载体。但是,使用微信个人微信号作为 ChatBot,需要通过非官方的第三方库接入微信。截至 2018 年底,微信尚无任何官方的 ChatBot API 发布。

Wechaty 基于微信公开的 API,对接口进行了一系列的封装,提供一系列简单的接口。开发者可以在其之上进行微信机器人的个性化开发,并将机器人应用于多个场景,例如:

  • 微信好友众多,如何管理和维护好友分组?
  • 面对海量的聊天信息,如何快速有序处理并区分其重要性?
  • 由于微信可以任意建群,面对日渐增多的微信群,如何管理?
  • 能否自动智能地对群内消息进行聊天回复

秉承着“连接全球人与应用”的使命, Authing 助力 Wechaty 机器人实现了数据分析、信息统计、辅助决策等众多功能,提高了传统人事管理的效率,实现了 Github 成员微信群的身份管理,保障用户身份信息安全,为机器人智能化发展增添了一种全新的可能。

03

Github 成员微信群的管理实现

管理员在 Github 上添加组织成员,通过 Github Webhook 钩子,发送到 Wechaty 服务,创建对应的 Authing 用户。组织成员用户手动添加 Bot 为好友, Bot 会将其邀请至微信群中。管理员在 Github 上删除组织成员时,也会通过 Github Webhook 钩子发送到 Wechaty 服务,Bot 将被删除的组织成员移除群聊后删除对应 Authing 用户。

sequenceDiagram
    actor N as Admin
    actor M as Member
    participant G as Github
    participant W as Wechaty
​
    Note over N: 邀请 Github 成员
    N ->> G:  添加用户
    G -->> W: Webhook member_invited
    W ->> W: 按邮箱注册 Authing 用户
​
    M ->> W: 添加 Bot 好友
    Note right of M: 发送用户名作为验证消息
    W -->> M: 邀请加入全员群
            
    Note over N: 移除 Github 成员
    N ->> G:  删除用户
    G -->> W: Webhook member_removed
    W ->> W: 按邮箱移除 Authing 用户
    W -->> M: 移除群成员

04

Authing 技术支持

准备工作

  • 推荐 Wechaty 机器人使用一个没有太多群聊和好友的新号。
  • 同时,最好新建一个群聊,避免群聊用户因与 Github 未进行绑定,后期无法被移除群聊的风险。
  • 将 Bot 账号设置为群聊管理员

然后我们就可以开始代码实现了。

创建 Github Webhook 处理路由

目前主要处理两个事件:

  • member_added:用户加入 Github 组织
  • member_removed:用户离开 Github 组织
    ​
    可以使用任意 HTTP 框架,此处示例用的是 Nest.js,供参考。
import { Controller, Post, Body } from '@nestjs/common';
​
@Controller('webhook')
export class CatsController {
  @Post()
  async webhook(@Body() webhookDto: WebhookDto) {
    // 可以判断是否为指定 Org
    // 通过:webhookDto.organization.login 字段
    switch(webhookDto.action) {
        case 'member_added': {
            // 该步骤核心为注册 Authing 用户,仅为演示,可以放到 service 或者其他地方
            await authing.createGithubUser(webhookDto.membership.user);
            break;
        }
        case 'member_removed': {
            const contactId = await authing.getWechatyContactId(webhookDto.membership.user.login);
            // TODO:  搜索群聊,踢出用户。如果 Puppet 支持,还可以删除好友
            
            // 删除 Authing 用户
            await authing.removeGithubUser(webhookDto.membership.user);
            break;
        }
        default: {
            // 其他可扩展
        }    
    }
    // 定义返回格式
  }
}

点击查看 Github Webhook Payload 参考网站

扩展 Wechaty Authing 插件

新增如下几个方法来扩展 wechaty-authing插件:

  • createGithubUser:创建 Authing 用户
  • getWechatyContactId:获取用户的 Wechaty Contact Id
  • Wechaty Contact Id 可以映射到 Authing 用户 externalId字段或者其他
  • removeGithubUser:删除 Authing 用户
  • checkGithubLogin:校验 Github 用户是否为组织成员
  • bindGithubUser:将 Github 用户与 Wechaty Contact 进行绑定
import { WechatyAuthing } from 'wechaty-authing';

class ExtendedWechatyAuthing extends WechatyAuthing {
  createGithubUser(user: GithubUser) {
   return this.client.users
    .create(
      {
        nickname: user.login,
        photo: user.avatar_url,
        registerSource: ['wechaty'],
        username: user.login
      },
      {
        identity: {
          isSocial: true,
          userIdInIdp: user.id,
          provider: 'github'
        }
      }
    );
  }
  
  async getWechatyContactId(login: string): Promise<string> {
    const user = await this.client.users.find({ username: login });
    return user?.externalId || '';
  }
  
  async removeGithubUser(login: string) {
    const user = await this.client.users.find({ username: login });
    return this.client.users.delete(user?.id);
  }
  
  async checkGithubLogin(login: string): Promise<boolean> {
    return this.client.users.exists({
      username: login
    });
  }
  
  async bindGithubUser<T = Contact>(
    username: string,
    contact: T
  ): Promise<boolean> {
    try {
      const { id } = await this.client.users.find({ username });
      await this.client.users.update(id, {
        externalId: contactId
      });
      return true;
    } catch (e) {
      return false;
    }
    return false;
  }
}

export const authing = new ExtendedWechatyAuthing({
  userPoolId: process.env.AUTHING_USER_POOL_ID,
  secret: process.env.AUTHING_USER_POOL_SECRET
});

Wechaty Handler 扩展

1. 好友请求绑定 Github 用户

当 Bot 收到用户好友申请时,检查是否为 Github 组织用户,并邀请入群。

import type { Friendship, Wechaty } from 'wechaty';
import { log } from 'wechaty';
import { FriendshipType } from 'wechaty-puppet';
import { authing } from '../lib/authing';

export default async function friendshipHandler(
  this: Wechaty,
  friendship: Friendship
): Promise<void> {
  if (friendship.type() !== FriendshipType.Receive) return;

  const username = friendship.hello().trim();
  const exists = await authing.checkGithubLogin(user);
  if (!exists) return;
  try {
    await friendship.accept();
    await sleep(2000);
    log.info('Friendship', friendship.contact().id);
    const contact = friendship.contact();
    const room = await this.Room.find({ id: 'roomId' });
    await authing.bindGithubUser(username, contact); 
    await room?.add(contact);
    log.info('Message', '邀请加入群聊成功');
  } catch (e) {
    log.error('Friendship', e);
  }
}

2. 消息绑定 Github 用户

对于原本已经添加过 Bot 的微信好友,可以通过该方式进行处理。同时,由于 Wechaty 存在一些不稳定的风险,在接受好友请求并邀请入群时,可能会失败。如遇到该问题,请隔一段时间,再次发送 Github 用户名给 Bot,进行重试。

import { log } from 'wechaty';
import type { Message, Wechaty } from 'wechaty';
import { MessageType } from 'wechaty-puppet';
import { authing } from '../lib/authing';

export default async function messageHandler(
  this: Wechaty,
  message: Message
): Promise<void> {
  // 只处理文本消息
  if (message.type() !== MessageType.Text) return;
  
  const username = message.text().trim();
  const exists = await authing.checkGithubLogin(user);
  if (!exists) return;
  const result = await authing.bindGithubUser(username, contact);
  if (result) {
    try {
      const room = await this.Room.find({ id: 'roomId' });
      await room?.add(contact);
      log.info('Message', '邀请加入群聊成功');
    } catch (e) {
      log.error('Message', e);
    }
  }
}

精彩回顾

《洞悉身份认证 6000 年发展史,我们该警醒并学到什么?》

《穿越 300 年科技发展史,我们能学到什么?》

您可以即刻前往 Authing 官网了解价格详情~

相关推荐

洞察|以 AI Agent 身份为中心的下一代 IDaaS 探索,「零信任」原则是否依然有效

若一个 AI 代理被诱骗点击了恶意链接,也应当因其权限受限而无法进一步获取更多内部信息,从而将影响降到最低。

Authing的博客 1139

Authing 正在寻找云原生应用 / Infra 开发者

我们需要云原生应用开发者和云原生基础设施开发者加入我们

Authing的博客 1121

从数据孤岛到信息共享,应用集成网关打造业务新生态

企业通过应用集成网关轻松打通业务隔阂,让应用相互“对话”,快速实现数字化转型和业务发展的持续增长。

Authing的博客 1141

建立统一网络身份认证平台,赋能用户信息安全

随着网络化、数字化、智能化的演进,在深入推进数字经济创新发展、积极培育新兴产业和未来产业的过程中,安全与发展将是永恒的主题,如何确保网络身份安全将是主旋律。

Authing的博客 1524

Authing 2024 年全员大会:坚持原创性、冒险精神和极客精神,突破瓶颈,引领市场

他的话语不仅回顾了过去一年的挑战,也为员工们描绘了一个充满希望的未来。

Authing的博客 1015

构建用户身份基础设施,推动新能源汽车高质量发展

企业的困惑或许不再是“ 0 到 1 阶段的破冰”该如何落实,而是在技术创新和政策支持不断变化的情况下,如何抓住用户并在消费者心中构筑存在感,才是未来竞争中的关键。

Authing的博客 1669

后量子时代,未来密码该何去何从?

在量子信息时代来临之前,如何能够有效抵御量子攻击就成了不得不面对的问题之一。

Authing的博客 1773

当网络安全成为业务增长的重要保障,企业应该如何应对?

企业需要关注的网络安全层面有哪些?企业管理者又应如何应对网络安全问题,准确制定企业安全策略呢?

Authing的博客 1733

七部门重磅发文!未来产业创新该如何发展?

如何确保产业数字安全基础上,加快发展未来产业,支撑推进企业创新发展?

Authing的博客 1026

Authing 身份云入选崔牛会「2024 中国企业服务云图」

提供 OPA(组织过程管理) SaaS ,完善 OPA 计算监控、事件监控、决策监控、决策设计器、代码编写等,覆盖决策计算全生命周期,实现事件驱动的低代码决策引擎和自动化风控引擎。Authing 目前已经服务包括可口可乐、招商银行、三星集团、复星集团、万科集团、海底捞在内的 40000+ 企业和开发者。2024 版云图汇聚了时下国内 3500+ 家数字化领域内优秀的 To B 企业,涵盖技术支撑、数据资产、协同办公、垂直行业等 18 个类别,覆盖万亿级市场,堪称中国企业数字化选型的“宝典”,

Authing的博客 750

管理员分级管控三大模式,提高企业内部管理效率

企业在整个权限管理落地过程中,如何解决这些难题,提高企业内部管理效率?

Authing的博客 2057

零信任网络标准发布,企业如何构建下一代可信任的身份安全体系?

在这样的背景下,企业如何构建下一代可信任的身份安全体系?

Authing的博客 1303

克服数字化三重担忧,从构建身份基础设施开始

如何消除三重担忧,成为企业数字化转型之路的重中之重。

Authing的博客 955

AI 欺诈事件频出,如何重塑身份认证的安全性?

人工智能时代的到来,将不仅仅是科技盛宴,更是信息安全对网络威胁的一次攻坚战。

Authing的博客 1386

教育信创全面加速,如何促进高校信息化建设?

教育数字化转型不是针对一般教育设施的简单更新升级,而是针对整个教育体系的深层次积累,引领教育行业从传统的教育模式向智能化教育迈进,形成适应数字时代的全新教育形态。

Authing的博客 1928

Authing 入选中国信通院《 2023 高质量数字化转型产品及服务全景图》

近日,中国信通院“铸基计划”发布了《高质量数字化转型产品及服务全景图( 2023 )》。Authing 身份云成功入选 IT 维护与运营领域并获得证书。

Authing的博客 704

第三方 Cookie 被禁用?企业该如何实现用户精准运营和管理?

如何收集和利用第一方数据填补第三方 Cookie 的空白,成为许多企业和营销人员需要重新思考的问题。

Authing的博客 1331

从密码认证到 Passkey 无密码,告别传统密码时代

Authing 作为国内领先的身份认证服务商,率先推出 Passkey 无密码认证服务,填补国内密码认证缺陷,降低数据泄漏风险。

Authing的博客 1566

Authing 受邀参加 2023 QCon 全球软件开发大会

Authing 作为身份领域领先企业受邀参加此次大会,与客户深度对话塑造数字化发展未来。

Authing的博客 695

2023 年最先进认证方式上线,Authing 推出 Passkey 无密码认证

密码这一传统身份认证方式已经难以得到可靠的认证保障,随之出现各种新身份认证方式,其中就包括无密码身份认证。

Authing的博客 1554

Authing 分级管理员重磅上线,实现权限超细粒度分级管

为了满足企业内部复杂的组织架构设计需求,企业需要实现“统一管理,分级授权”的权限管理模式,满足企业内部不同角色的需求,提高了整体管理的透明度和可操作性。

Authing的博客 1585

身份自动化工作流,帮助您快速提高工作效率

身份自动化不仅仅简单将手动步骤数字化,更是将企业从传统、低效、甚至过时的工作流程中解放出来,形成数字化引擎,将企业的管理方式从繁琐转变为简洁,从手动迈向自动,为整个组织注入了新的活力。

Authing的博客 1210

从身份治理出发,助力教育行业回归教育本质

在实施国家教育数字化战略行动中,如何利用数字技术优势助力教育治理变革,提升区域、学校教育治理水平成为深化教育改革的一个热点话题。

Authing的博客 1193

身份管理如何提升中小企业生产力?

在此困局中,企业希望依托数字化以求业务增长、人员增效、企业扩张以及产品核心竞争力的稳固。

Authing的博客 1025

先进制造身份治理现状洞察:从手动运维迈向自动化身份治理时代

当前形势下,我国制造业发展之路该如何走?

Authing的博客 1680

Authing CEO 谢扬来信 |我的原则

从忙碌的工作中短暂抽身,有很多感想,不吐不快,借此机会,倾我所有,诉我原则。

Authing的博客 1165

从 RBAC 到 NGAC ,企业如何实现自动化权限管理?

谁具有特定数据的访问权限?您的企业是否实现了对员工权限的有效管理?

Authing的博客 2205

如何为您的企业选择合适的多因素认证?

如何评估企业的 MFA 需求,如何选择合适的 MFA 解决方案?这些都成为企业在如今安全环境下需要思考的问题。

Authing的博客 1266

放弃无谓的「技术氛围」幻想,准备战斗

资本绝不会做亏本买卖,一家公司在市场中的一切动作都以盈利为目的。

Authing的博客 225

Authing 入选《 2023 年央国企信创应用与实践研究报告》优秀服务商

Authing 身份云作为国内唯一事件驱动云原生身份平台入选《 2023 年央国企信创应用与实践研究报告》优秀服务商。

Authing的博客 728
上一篇: 一图,助您提高员工管理效率
下一篇: 身份上云,携手共赢,Authing 合作网络期待您的加入
Authing
Authing 企业官方账号 企业官方账号
博客等级 码龄6年 863粉丝 304原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值