目录
一、效果展示
二、准备工作
三、游戏流程与规则
四、部署步骤
五、逻辑讲解与核心代码
首页 微信小程序 小程序开发 一文看看如何撸出春节“智能迎春对联”小程序!

一文看看如何撸出春节“智能迎春对联”小程序!

Jan 17, 2022 am 10:21 AM
小程序 春节

2022已经正式来临,距离中国人的农历春节仅剩十几天了,春节必不可少的就是春联了,下面本篇文章看看怎么实现春节“智能迎春对联”小程序,希望对大家有所帮助!

一文看看如何撸出春节“智能迎春对联”小程序!

新年将至,做个智能迎春对联小程序给大伙助助兴!提前祝各位掘友们,2022新年快落!新春快落!

一、效果展示

随机春联

1.gif

指定姓氏

2.gif

体验地址
微信扫描下面的二维码 or 微信搜索宝藏程序

3.gif

源码地址

Gitee:https://gitee.com/nanfangzhe/wechat_demo

二、准备工作

掌握语言微信小程序语言
技术要点:①微信小程序云开发百度AI智能创作平台-智能写春联

三、游戏流程与规则

游戏流程:可以通过点击随机春联指定姓氏来获取所想要的春联~
名词解释:①随机春联,随机显示一对春联。 ②指定姓氏:输入你的姓氏,生成对联。

四、部署步骤

1️⃣注册微信小程序流程,开启云开发
2️⃣注册百度AI平台——》控制台——》创建自然语言处理的应用——》百度认证授权,拿到token——》再拿token去智能春联API接口
3️⃣需要修改的地方:APPID(用微信开发者工具打开时输入的APPID)、百度token(在couplet文件夹里的index.js文件)、云开发环境env(在app.js文件)

五、逻辑讲解与核心代码

1 随机春联的逻辑讲解

由于百度提供的智能春联API接口是需要传参的,所以我们可以提前预备一个小型数据集合,通过点击的时候能进行传值,然后返回需要的对联。因此,是收集了部分迎春过年的字词、词语。

var RANDOM_TEXT_LIST = ["虎", "虎年", "迎春", "春节", "过年", "年兽", "过春节", "初一", "年初", "红红火火", "红火", "开心", "开开心心", "健康", "健健康康", "长寿", "平安", "平平安安", "家庭", "家庭和睦", "和睦", "子子孙孙", "勤劳", "福气", "福", "致富", "富裕", "富", "合家欢喜", "合家", "欢喜", "喜庆", "喜", "囍", "生意兴隆", "恭喜发财", "大富大贵", "富贵", "富裕", "丰年", "子孙满堂", "心欢喜", "人间喜", "灯火", "灯笼", "烟花", "爆竹"]
登录后复制

4.png

2 指定姓氏的逻辑讲解

这个和随机春联是类似的逻辑,只不过需要用户输入姓氏,但是用到的api接口有点拉胯,输入单单一个姓的字,输出的内容是有点不合理。所以在这处理办法是拼接加一个“家”字进去,比如输入姓氏:柳,传值的就是柳家;输入的是张,就是张家...

  ok: function () {
    var text = this.data.textV
    if (!text || text.length > 4) {
      wx.showToast({
        title: '姓氏暂不支持超过4个字哦!',
        icon: 'none'
      })
      return;
    }
    this.getCoupletByTxt(text + "家") // 智能写对联
    this.setData({
      showModal: false
    })
  },
登录后复制

3 核心代码

经过前面的逻辑讲解,你可能就知道,核心代码是公共调用的方法。(Bingo~ 你猜对了)

随机春联调用的方法

// 随机春联的调用方法
  bindGetRandomCouplet() {
    let that = this
    var num = parseInt(Math.random() * (MAX_NUM - MIN_NUM + 1) + MIN_NUM, 10); // 生成[n,m]的随机整数
    that.getCoupletByTxt(RANDOM_TEXT_LIST[num]) // 智能写对联
  },
登录后复制

指定姓氏调用的方法

// 随机春联的调用方法
  ok: function () {
    var text = this.data.textV
    if (!text || text.length > 4) {
      wx.showToast({
        title: '姓氏暂不支持超过4个字哦!',
        icon: 'none'
      })
      return;
    }
    this.getCoupletByTxt(text + "家") // 智能写对联
    this.setData({
      showModal: false
    })
  },
登录后复制

调用智能春联的公共方法

  // 智能写对联(API接口来源,参考百度-语言处理技术-智能创作平台-智能写对联:https://ai.baidu.com/ai-doc/NLP/Ok53wb6dh)
  getCoupletByTxt(text) {
    let that = this
    console.log(text) // 字符串(限5字符数以内)即作诗的主题
    if (!text || text.length > 5) {
      wx.showToast({
        title: '主题限制5个字以内哦!',
        icon: 'none'
      })
      return;
    }
    wx.cloud.callFunction({
      name: 'couplet',
      data: {
        action: 'getCoupletByTxt',
        text
      }
    }).then(res => {
      console.log(res)
      if (res.result.error_code) {
        if ("17".indexOf(res.result.error_code) != -1) {
          wx.showToast({
            title: '调用次数用完啦,点击右下角小电话,联系开发者充次钱充次数啦!',
            icon: 'none',
            duration: 3000,
          })
        } else {
          wx.showToast({
            title: '当前对联不太行,请重试!',
            icon: 'none'
          })
        }
        return;
      }
      that.setData({
        couplets: res.result.couplets
      })
    })
  },
登录后复制

云函数调用的公共方法

// 注:先看readme.md文件
// 对联生成请求
const cloud = require('wx-server-sdk')
var rp = require('request-promise')
cloud.init({
  env: cloud.DYNAMIC_CURRENT_ENV
})
const DB = cloud.database()
// 天行数据的KEY
var TIAN_XING_KEY = ''
// 天行数据的接口API
var TIAN_XING_API = 'http://api.tianapi.com/duilian/index'
// 百度Token
var BAI_DU_ACCESS_TOKEN = '' // 这里需要自行去申请咯~
// 百度接口api
var BAI_DU_API = [
  "https://aip.baidubce.com/rpc/2.0/creation/v1/poem", // 智能写诗
  "https://aip.baidubce.com/rpc/2.0/creation/v1/couplets" // 智能写对联
]


// 云函数入口函数
exports.main = async (event, context) => {
  var { action, text } = event
  var data = {}
  switch (action) {
    case 'getPoemByTxt': {
      data.text = text
      if (text == "")
        return {
          message: '缺少参数text'
        }
      // 智能写诗(API接口来源,参考百度-语言处理技术-智能创作平台-智能写诗:https://ai.baidu.com/ai-doc/NLP/ak53wc3o3)
      return new Promise((resolve, reject) => {
        try {
          rp({
            method: 'POST',
            headers: {
              "content-type": "application/json",
            },
            body: JSON.stringify(data),
            url: BAI_DU_API[0] + '?access_token=' + BAI_DU_ACCESS_TOKEN, // text必要参数,写诗的主题内容
          }, function (error, response, body) {
            if (error) {
              return reject(error);
            }
            return resolve(JSON.parse(body));
          })
        } catch (e) {
          return reject(e)
        }
      });
    }
    case 'getCoupletByTxt': {
      data.text = text
      if (text == "")
        return {
          message: '缺少参数text'
        }
      // 智能写对联(API接口来源,参考百度-语言处理技术-智能创作平台-智能写对联:https://ai.baidu.com/ai-doc/NLP/Ok53wb6dh)
      return new Promise((resolve, reject) => {
        try {
          rp({
            method: 'POST',
            headers: {
              "content-type": "application/json",
            },
            body: JSON.stringify(data),
            url: BAI_DU_API[1] + '?access_token=' + BAI_DU_ACCESS_TOKEN,  // text必要参数,对联的主题内容
          }, function (error, response, body) {
            if (error) {
              return reject(error);
            }
            return resolve(JSON.parse(body));
          })
        } catch (e) {
          return reject(e)
        }
      });
    }
    case 'getRandomCouplet': {
      // 随机一对对联(无横批)(API接口来源,天行数据:https://www.tianapi.com/console/)
      return new Promise((resolve, reject) => {
        rp({
          url: TIAN_XING_API + '?key=' + TIAN_XING_KEY,
          method: "POST",
          json: true,
        }, function (error, response, body) {
          console.log("响应" + body)
          resolve(body)
          if (!error && response.statusCode == 200) {
            try { } catch (e) {
              reject()
            }
          }
        })
      })
    }
    default: {
      return {
        message: 'action错误!'
      }
    }
  }

}
登录后复制

(中间有些多余的代码,并不是多余的,只是未整理,并且还在继续开发这个小程序...)

完整代码地址:https://gitee.com/nanfangzhe/wechat_demo

【相关学习推荐:小程序开发教程

以上是一文看看如何撸出春节“智能迎春对联”小程序!的详细内容。更多信息请关注PHP中文网其他相关文章!

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

Video Face Swap

Video Face Swap

使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

使用Python开发微信小程序 使用Python开发微信小程序 Jun 17, 2023 pm 06:34 PM

随着移动互联网技术和智能手机的普及,微信成为了人们生活中不可或缺的一个应用。而微信小程序则让人们可以在不需要下载安装应用的情况下,直接使用小程序来解决一些简单的需求。本文将介绍如何使用Python来开发微信小程序。一、准备工作在使用Python开发微信小程序之前,需要安装相关的Python库。这里推荐使用wxpy和itchat这两个库。wxpy是一个微信机器

《阴阳师》全新春节版本活动「鲸汐永歌」即将开启,参与「福运派送」抽取新春锦鲤! 《阴阳师》全新春节版本活动「鲸汐永歌」即将开启,参与「福运派送」抽取新春锦鲤! Feb 05, 2024 pm 05:50 PM

【春节版本活动「鲸汐永歌」】潮汐凝滞,鲸鸣隐没。千里寒冰覆盖永生之海,新生的鲛人女王怀着坚定不移的守护之心,再度启程。【活动时间】一阶段:2月7日维护后-2月16日23:59将开启鲛人行歌、冰海异客、海原营地、海月屋、千汐礼遇等玩法二阶段:2月17日10:00-2月20日23:59开启二阶段玩法【活动玩法】-鲛人行歌-一阶段期间,随着时间推进逐步解锁3个探索故事章节。阴阳师们将随千姬一起在永生之海进行探索,完成剧情、战斗、奇遇等事件推进故事进展并获得奖励。奇遇玩法包括:极光漩流、铁鼠对弈。可前往

实现微信小程序中的卡片翻转特效 实现微信小程序中的卡片翻转特效 Nov 21, 2023 am 10:55 AM

实现微信小程序中的卡片翻转特效在微信小程序中,实现卡片翻转特效是一种常见的动画效果,可以提升用户体验和界面交互的吸引力。下面将具体介绍如何在微信小程序中实现卡片翻转的特效,并提供相关代码示例。首先,需要在小程序的页面布局文件中定义两个卡片元素,一个用于显示正面内容,一个用于显示背面内容,具体示例代码如下:<!--index.wxml-->&l

支付宝上线'汉字拾光-生僻字”小程序,用于征集、补充生僻字库 支付宝上线'汉字拾光-生僻字”小程序,用于征集、补充生僻字库 Oct 31, 2023 pm 09:25 PM

本站10月31日消息,今年5月27日,蚂蚁集团宣布启动“汉字拾光计划”,最近又迎来新进展:支付宝上线“汉字拾光-生僻字”小程序,用于向社会征集生僻字,补充生僻字库,同时提供不同的生僻字输入体验,以帮助完善支付宝内的生僻字输入方法。目前,用户搜索“汉字拾光”、“生僻字”等关键词就可以进入“生僻字”小程序。在小程序里,用户可以提交尚未被系统识别录入的生僻字图片,支付宝工程师在确认后,将会对字库进行补录入。本站注意到,用户还可以在小程序体验最新的拆字输入法,这一输入法针对读音不明确的生僻字设计。用户拆

2023年原神新角色盘点:15位角色,你都获得了哪些,最喜欢哪一个? 2023年原神新角色盘点:15位角色,你都获得了哪些,最喜欢哪一个? Jan 30, 2024 pm 07:12 PM

不得不感叹一下时间过得真的好快,今天就给大家总结一下原神2023年新登场的角色。话不多说,下面直接进入正题。1.瑶瑶上线日期:2023年1月18日瑶瑶是四星草系奶妈,萍姥姥的弟子,香菱小师妹。拥有不俗的奶量,还有一定的脱手挂草能力,因此在绽放队中有一席之地。2.艾尔海森上线日期:2023年1月18日草系单手剑短轴主C。上线之后,强度逐渐被大众认可,零命即是完全体,在须弥版本是绝对的T0主C,在目前也仍然是最具性价比主C之一。3.迪希雅上线日期:2023年03月01日迪希雅是第二位常驻火系五星大剑

uniapp如何实现小程序和H5的快速转换 uniapp如何实现小程序和H5的快速转换 Oct 20, 2023 pm 02:12 PM

uniapp如何实现小程序和H5的快速转换,需要具体代码示例近年来,随着移动互联网的发展和智能手机的普及,小程序和H5成为了不可或缺的应用形式。而uniapp作为一个跨平台的开发框架,可以在一套代码的基础上,快速实现小程序和H5的转换,大大提高了开发效率。本文将介绍uniapp如何实现小程序和H5的快速转换,并给出具体的代码示例。一、uniapp简介unia

用Python编写简单的聊天程序教程 用Python编写简单的聊天程序教程 May 08, 2023 pm 06:37 PM

实现思路x01服务端的建立首先,在服务端,使用socket进行消息的接受,每接受一个socket的请求,就开启一个新的线程来管理消息的分发与接受,同时,又存在一个handler来管理所有的线程,从而实现对聊天室的各种功能的处理x02客户端的建立客户端的建立就要比服务端简单多了,客户端的作用只是对消息的发送以及接受,以及按照特定的规则去输入特定的字符从而实现不同的功能的使用,因此,在客户端这里,只需要去使用两个线程,一个是专门用于接受消息,一个是专门用于发送消息的至于为什么不用一个呢,那是因为,只

微信小程序怎么弄会员 微信小程序怎么弄会员 May 07, 2024 am 10:24 AM

1、打开微信小程序,进入对应的小程序页面。2、在小程序页面中查找会员相关入口,通常会员入口在底部导航栏或个人中心等位置。3、点击会员入口,进入会员申请页面。4、在会员申请页面,填写相关信息,如手机号码、姓名等,完成信息填写后,提交申请。5、小程序方会对会员申请进行审核,审核通过后,用户即可成为微信小程序会员。6、作为会员,用户将享有更多的会员权益,如积分、优惠券、会员专属活动等

See all articles