关于node.js:😜微信每天自动给女男朋友发早安和土味情话

微信告诉,每天给女朋友发早安、情话、诗句、天气信息等~

前言

之前逛GitHub的时候发现了一个主动签到的小工具,b站、掘金等都能够,我看了下源码发现也是很简洁,也尝试用了一下,配置也都很简略,次要是他有一个主动打卡、抽奖的信息告诉到微信的性能,不错过运气爆棚打卡抽奖时的中奖~😛

尽管以前做过钉钉的音讯告诉,然而钉钉我也就下班用一下,日常很少应用,要说通信工具在国内还是要微信,笑~😑,所以,第一接管信息告诉的工具最好能是微信,懂得都懂~

起初我依据这个性能的逻辑一想,借用这个音讯告诉的能力,不就能够自定义任何内容推送到微信了吗,嘿嘿嘿,发现事件变的乏味了起来了~

想起之前看过一篇文章是通过邮箱每天给女朋友发土味情话的操作,邮箱哪有微信成果好呀,可不是😎

话不多说间接开整,本人做个每天给女朋友发早安和土味情话的工具,你也能够每天都是暖男~

思路

接下来咱们次要做两件事:

  • 第一件事:音讯告诉到微信能力的工具
  • 第二件事:音讯内容的获取和数据处理

音讯告诉能力,我调研了下,其余计划或多或少都有限度和有余,采纳以上工具中的计划算是以后比拟适合的

音讯内容获取,一是通过凋谢API疾速应用,二是通过本人编写爬虫脚本获取,出于技术和工夫老本思考,目前优先思考计划一,计划二能够作为拓展能力

音讯告诉工具剖析

wechaty

文档:wechaty

能做到微信简直所有的性能和能力,当你有个小号微信时,你齐全能够把它交由 wechaty管制,再通过代码设计各种能力,可玩性齐全由你的想法决定

主动回复、加群、定时推送、回复、AI接口能力联合等等很多。。。

硬性条件是须要 wechaty官网提供的 token来获取权限,目前形式有两种

  • 形式一:分割相干人员购买
  • 形式二:参加开发者打算,奉献我的项目并被驳回,收费提供

相干文档:https://github.com/juzibot/We…

如果你有加过一些大佬的微信群,应该接触过由该能力实现的主动拉群、主动回复、主动每日播报的机器人

钉钉、飞书、企业微信

这三个工具定位都是企业级利用,企业级利用的益处就是可定制性很高,官网有凋谢提供很多API接口和权限,机器人、自定义利用、小程序等,可玩性还是蛮大的。

存在问题:

中国社交APP真实情况,排除企业组织应用,集体而言微信第一优先,不论是音讯告诉还是其余能力,但矛盾的中央是,集体微信限度很多,简直不提供这种开发API的能力。当然,如果你能够承受钉钉或飞书或企业微信,则不存在这种问题。

新的思路:

企业微信作为微信本人的产品,有着一些人造劣势:微信反对在微信内承受企业微信的音讯

围绕这个能力咱们也能够实现相应的性能需要,首先,咱们先在微信内关注咱们创立的企业微信,而后容许微信内承受企业微信内的音讯。

集体创立企业微信很简略,只需提供手机号即可

钉钉、飞书则应用机器人告诉

小结

有条件优先应用 wechaty实现,没条件能够退而求其次采取 企业微信 + 微信 的形式。

筹备

1.注册企业

用电脑关上企业微信官网,注册一个企业。有手机号就能够注册,不必营业执照!不必营业执照!不必营业执照!

2.创立利用

注册胜利后,点「治理企业」进入治理界面,抉择「利用治理」 → 「自建」 → 「创立利用」

利用名称随便填,可见范畴能够抉择公司名。

创立实现后进入利用详情页,能够失去利用ID( agentid ),利用Secret( secret )。

3.获取企业ID

进入「我的企业」页面,拉到最下边,能够失去企业ID。

4.推送音讯到微信

进入「我的企业」 → 「微信插件」,拉到下边扫描二维码,关注当前即可收到推送的音讯。

注:如果呈现接口申请失常,企业微信承受音讯失常,集体微信无奈收到音讯的状况:

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

2.在企业微信客户端 「我」 → 「设置」 → 「新音讯告诉」中敞开 “仅在企业微信中承受音讯” 限度条件

5.增加环境变量

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

  1. Name 是WX_APP_ID,Value 是第二步的 AgentId
  2. Name 是WX_APP_SECRET,Value 是第二步 Secret
  3. Name 是WX_COMPANY_ID,Value 是第三步的 企业ID
WX_COMPANY_ID= 企业ID
WX_APP_ID= 利用ID
WX_APP_SECRET= 利用 Secret
TIAN_API_KEY= 天行数据 key

6.GitHub Action每天主动执行

外围代码如下,具体代码见上面仓库链接

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.env

export 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))

成果

天气信息

其余信息

今日笑话:
名作家到我市举办签名流动。一大早我带着儿子来书店买书,请作家签名时,儿子在一旁不解地问:“咱们买的书怎么写他的名字?”

一言:
冬天之所以那么冷是为了通知大家身边人的和煦有多重要。

今日英语(Dec 18 2021):
While there is life, there is hope.
生命不息,心愿不止。

代码

本我的项目应用 TypeScript开发,包管理工具为 pnpm

残缺代码见仓库,已开源 https://github.com/JS-banana/…

欢送一起交换

开发

复制 .env.example文件重命名为 .env,并依照要求填写对应值,能够间接测试

如果要通过 GitHub Action应用,须要在 Secrets 中一一增加变量

结语

怎么说呢,每天逛GitHub你都能发现很多乏味的我的项目和小工具,每天抽点工夫看看不仅能够理解前言技术,还能第一工夫接触到很多优良的内容和我的项目,并参考学习,以此积攒技术也会一直精进。

这个我的项目总的来说还是很简略的,比日常工作写业务要简略多了,然而它却是很乏味的,这未尝不是爱上编码的一种形式呢。无聊繁冗的业务工作很容易让人产生腻烦和颓态,但技术自身应是带给咱们乐趣和高兴的,不是吗

明天你是暖男了吗😉

评论

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

这个站点使用 Akismet 来减少垃圾评论。了解你的评论数据如何被处理