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

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


微信通知,每天给女朋友发早安、土味情话、诗句、天气信息等~
前言
前几天逛GitHub的时候,发现了一个小工具,可以把消息通知信息推到微信上。我也试着用它。配置很简单,用起来很方便很好奇研究。看了下源码,发现也很简单~说实话,我很好奇怎么做微信通知。
虽然之前做过钉钉的消息通知,但是上班用,日常使用很少。要说通讯工具在国内还是需要微信和微笑的。所以第一个接收信息通知的工具最好是微信,知道了就知道了~。
后来按照这个功能的逻辑,借用这个消息通知的能力,不能定制任何内容推送到微信吗?呵呵呵,发现事情变得有趣了~。
想起之前看过一篇文章,每天都是通过邮箱给女朋友发土味情话。邮箱没有微信效果好,不是吗?
话不多说直接开整,自己做个每天给女朋友发早安和土味情话的工具,你也可以每天都是暖男~
思路
接下来我们主要做两件事:
第一件事:消息通知到微信能力的工具
第二件事:消息内容的获取和数据处理
消息通知能力,我调研了下,其他方案或多或少都有限制和不足,采用以上工具中的方案算是当前比较合适的
获取消息内容,一是通过开放API快速使用,二是通过编写爬虫脚本获取。考虑到技术和时间成本,目前优先考虑方案1和方案2可以作为扩展能力。
消息通知工具分析
wechaty
文档:https://github.com/juzibot/Welcome/wiki/Everything-about-Wechaty
可以实现微信几乎所有的功能和能力。当你有一个小号微信的时候,你可以把它交给wechaty控制,然后通过代码设计各种能力。可玩性完全由你的想法决定。
自动回复,加群,定期推送,回复,AI接口能力结合等等。
硬性条件是wechaty官方提供的token需要获得权限,目前有两种方式。
方式一:联系相关人员购买
方式二:参与开发者计划,贡献项目并被采纳,免费提供
相关文档:
钉钉、飞书、企业微信
这三个工具都是企业级应用。企业级应用的优点是可定制性高。官方开放提供了大量的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: stringconstructor(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枫斗者;如有侵权,请联系管理员删除。