ITPub博客

首页 > 数据库 > 数据库开发技术 > 微信每天自动给女【男】朋友发早安和土味情话。

微信每天自动给女【男】朋友发早安和土味情话。

原创 数据库开发技术 作者:IT枫斗者 时间:2022-01-29 13:39:18 0 删除 编辑

简介:大家好,我是枫哥,🌟一线互联网的IT民工、📝资深面试官、🌹Java跳蚤网课堂创始人。拥有多年一线研发经验,曾就职过科大讯飞、美团网、平安等公司。在上海有自己小伙伴组建的副业团队,目前业余时间专注Java技术分享,春招/秋招/社招/跳槽,一对一学习辅助,项目接活开发。

🌟 欢迎关注 🌟 收藏 🌹在看 🌹

🍊🍊:文末送福利


微信通知,每天给女朋友发早安、土味情话、诗句、天气信息等~


前言


前几天逛GitHub的时候,发现了一个小工具,可以把消息通知信息推到微信上。我也试着用它。配置很简单,用起来很方便很好奇研究。看了下源码,发现也很简单~说实话,我很好奇怎么做微信通知。


虽然之前做过钉钉的消息通知,但是上班用,日常使用很少。要说通讯工具在国内还是需要微信和微笑的。所以第一个接收信息通知的工具最好是微信,知道了就知道了~。


后来按照这个功能的逻辑,借用这个消息通知的能力,不能定制任何内容推送到微信吗?呵呵呵,发现事情变得有趣了~。


想起之前看过一篇文章,每天都是通过邮箱给女朋友发土味情话。邮箱没有微信效果好,不是吗?


话不多说直接开整,自己做个每天给女朋友发早安和土味情话的工具,你也可以每天都是暖男~


思路


接下来我们主要做两件事:


第一件事:消息通知到微信能力的工具


第二件事:消息内容的获取和数据处理


消息通知能力,我调研了下,其他方案或多或少都有限制和不足,采用以上工具中的方案算是当前比较合适的


获取消息内容,一是通过开放API快速使用,二是通过编写爬虫脚本获取。考虑到技术和时间成本,目前优先考虑方案1和方案2可以作为扩展能力。


消息通知工具分析


wechaty


文档:https://github.com/juzibot/Welcome/wiki/Everything-about-Wechaty


可以实现微信几乎所有的功能和能力。当你有一个小号微信的时候,你可以把它交给wechaty控制,然后通过代码设计各种能力。可玩性完全由你的想法决定。


自动回复,加群,定期推送,回复,AI接口能力结合等等。

硬性条件是wechaty官方提供的token需要获得权限,目前有两种方式。


方式一:联系相关人员购买


方式二:参与开发者计划,贡献项目并被采纳,免费提供


相关文档:


https://github.com/juzibot/Welcome/wiki/Everything-about-Wechaty
如果你有加过一些大佬的微信群,应该接触过由该能力实现的自动拉群、自动回复、自动每日播报的机器人

钉钉、飞书、企业微信


这三个工具都是企业级应用。企业级应用的优点是可定制性高。官方开放提供了大量的API接口和权限、机器人、自定义应用、小程序等。,可玩性相当大。


存在问题:


中国社交APP的真实情况,排除企业组织的使用,个人微信是第一位的,无论是新闻通知还是其他能力,但矛盾的是个人微信有很多限制,几乎不提供开发API的能力。当然,如果能接受钉子或者飞书或者企业微信,就不会有这样的问题。


新的思路:


企业微信作为自己的产品,有一些天然的优势:微信支持在微信上接受企业微信的消息。


围绕这种能力,我们也可以满足相应的功能需求。首先,我们关注我们在微信上创建的企业微信,然后允许我们在微信上接收企业微信上的消息。


个人创建企业微信很简单,只需提供手机号码即可。


钉钉、飞书则使用机器人通知


小结


有条件优先使用wechaty,无条件可退而求,其次采用企业微信+微信的方式。


准备


详细步骤和图片示例可见仓库 =>https://github.com/JS-banana/notify-server


1.注册企业


用电脑打开企业微信官网,注册企业。没有营业执照就可以用手机号注册!


2.创建应用


注册成功后,点「管理企业」进入管理界面,选择「应用管理」 → 「自建」 → 「创建应用」


应用名称随意填,可见范围可以选择公司名。


创建完成后进入应用详情页,可以得到应用ID( agentid ),应用Secret( secret )。


3.获取企业ID


进入「我的企业」页面,拉到最下边,可以得到企业ID。


4.推送消息到微信


进入我的企业→微信插件,拉到下面扫描二维码,注意后再收到推送消息。


注:如果接口请求正常,企业微信接收消息正常,个人微信无法接收消息:


1.进入「我的企业」 → 「微信插件」,拉到最下方,勾选 “允许成员在微信插件中接收和回复聊天消息”


2.在企业微信客户端 「我」 → 「设置」 → 「新消息通知」中关闭 “仅在企业微信中接受消息” 限制条件


5.添加环境变量


在 Github 的 Secrets 中在添加三个变量:


Name 是WX_APP_ID,Value 是第二步的 AgentId。

Name 是WX_APP_SECRET,Value 是第二步 Secret。

Name 是WX_COMPANY_ID,Value 是第三步的 企业ID。

WX_COMPANY_ID= 企业ID


WX_APP_ID= 应用IDWX_APP_SECRET= 应用 SecretTIAN_API_KEY= 天行数据 key


6.GitHub Action每天自动执行


核心代码如下,详细代码见下面仓库链接


https://github.com/JS-banana/notify-server/blob/master/.github/workflows/goodMorning.yml

schedule:


  # `分 时 天 月 周` 时按照标准时间 北京时间=标准时间+8 18表示北京时间早上2点  # 早上 7:30  - cron: '30 23 * * *'


数据赋能API


在这里,我们可以选择第三方开放API进行定制,或者自己定制。


注意:免费开源界面需要考虑服务稳定性!


目前接口数据能力主要由天星数据提供,随便注册一个账户会员,没有门槛。


天行数据:https://www.tianapi.com/


会员免费接口数量:15个


每日赠送次数:100次


注:如果采取该接口,需要在 5.添加环境变量这一步中,再添加Key的变量,作为天行数据接口使用时的必填参数


功能和内容


这里看个人想法。各种免费界面基本可以提供各种信息。可玩性真的很高。

目前增加的功能有:


个人定制化信息


  • 天气信息

  • 每日一言

  • 最美宋词

  • 雷人笑话

  • 土味情话

  • 每日英语

  • 睡前故事


内容完全由你发挥,之后还可以开发自己的个人信息和消息推送等,很棒~。


部分代码


接口代码


class API {  key: string  constructor(key?: string) {    this.key = key || '' // 为了方便,key在 http中统一添加  }  // 最美宋词  async getSongLyrics() {    const res = await getTian<IVerseProps[]>({ url: LoveMsgURL.songLyrics })    return res?.[0]  }  // 每日一句美好英语  async getDayEnglish() {    const res = await getTian<ResEnglishProps[]>({ url: LoveMsgURL.dayEnglish })    return res?.[0]  }  // 获取农历信息  async getLunarDate(date: string) {    const res = await getTian<ResLunarDateProps[]>({ url: LoveMsgURL.lunarDate, params: { date } })    return res?.[0]  }  // 土味情话  async getSaylove() {    const res = await getTian<SayloveProps[]>({ url: LoveMsgURL.saylove })    return res?.[0]  }}export default new API()


早安、午安、晚安


const { MESSAGE_TYPE } = process.envexport default function main() {  if (MESSAGE_TYPE === 'goodAfternoon') {    // 午安    goodAfternoon()  } else if (MESSAGE_TYPE === 'goodEvening') {    // 晚安    goodEvening()  } else {    // 早安    goodMorning()  }}


请求数据-goodMorning


/** * @name goodMorning * @description 说早安 */// 并行请求,优响相应const dataSource = await Promise.allSettled([  API.getSaylove(), // 土味情话  API.getCaihongpi(), // 彩虹屁  API.getOneWord(), // 一言  API.getSongLyrics(), // 最美宋词  API.getOneMagazines(), // one杂志  API.getNetEaseCloud(), // 网易云热评  API.getDayEnglish(), // 每日英语])// 过滤掉异常数据const [sayLove, caiHongpi, oneWord, songLyrics, oneMagazines, netEaseCloud, dayEnglish] =  dataSource.map((n) => (n.status === 'fulfilled' ? n.value : null))


效果


天气信息



其他信息


立如芝兰玉树,笑如朗月入怀,历尽千帆,不坠青云这是弓箭,这是火箭,你是我的甜蜜饯。『苏轼《水调歌头》』有悲欢离合,月有阴晴圆缺,此事古难全。『ONE杂志』爱情无非是年轻人一起喝酒做梦。『网易云音乐热评』你相信吗 也许在另一个平行时空 有一个跟你长得很像很像的人 正在热烈得爱着那个你爱不到的人——想见你想见你想见你『一言』你的眼中,明暗交杂,一笑生花。『每日英语(Jan 9, 2022』In case I don't see you… Good afternoon, good evening, and good night.

代码


本项目使用 TypeScript开发,包管理工具为 pnpm


完整代码见仓库,已开源


https://github.com/JS-banana/notify-server


开发


复制 .env.example文件重命名为 .env,并按照要求填写对应值,可以直接测试


如果要通过 GitHub Action使用,需要在 Secrets 中一一添加变量


结语


怎么说呢?每天逛GitHub,都能找到很多有趣的项目和小工具。每天花点时间看看,既能了解前端技术,又能第一时间接触到很多优秀的内容和项目,参考学习,积累技术,不断提高。


总的来说,这个项目很简单,比日常工作写生意简单多了,但是很有意思。这不是一种爱上编码的方式。无聊复杂的商业工作容易让人感到厌烦和沮丧,但技术本身应该给我们带来乐趣和快乐,不是吗?


今天你是暖男了吗😉


原文作者:IT枫斗者;如有侵权,请联系管理员删除。

请登录后发表评论 登录
全部评论
大家好,我是枫哥,🌟阿里云技术专家、📝资深面试官、🌹Java跳蚤网课堂创始人。技术交流vx:itfdz666,拥有多年一线研发经验,曾就职过科大讯飞、美团网、平安等公司。看面试实战视频可以关注b站号:IT枫斗者–Java面试。需要看技术文章,可以关注CSDN:IT枫斗者。

注册时间:2020-05-13

  • 博文量
    183
  • 访问量
    81344