怎么撸出春节智能迎春对联小程序
这篇文章主要讲解了“怎么撸出春节智能迎春对联小程序”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“怎么撸出春节智能迎春对联小程序”吧!
准备工作
掌握语言:微信小程序语言
技术要点:①微信小程序云开发 ②百度AI智能创作平台-智能写春联
游戏流程与规则
游戏流程:可以通过点击随机春联
和指定姓氏
来获取所想要的春联~
名词解释:①随机春联,随机显示一对春联。 ②指定姓氏:输入你的姓氏,生成对联。
部署步骤
1️⃣注册微信小程序流程,开启云开发
2️⃣注册百度AI平台——》控制台——》创建自然语言处理的应用——》百度认证授权,拿到token——》再拿token去智能春联API接口
3️⃣需要修改的地方:APPID(用微信开发者工具打开时输入的APPID)、百度token(在couplet文件夹里的index.js文件)、云开发环境env(在app.js文件)
逻辑讲解与核心代码
1 随机春联的逻辑讲解
由于百度提供的智能春联API接口是需要传参的,所以我们可以提前预备一个小型数据集合,通过点击的时候能进行传值,然后返回需要的对联。因此,是收集了部分迎春过年的字词、词语。
var RANDOM_TEXT_LIST = ["虎", "虎年", "迎春", "春节", "过年", "年兽", "过春节", "初一", "年初", "红红火火", "红火", "开心", "开开心心", "健康", "健健康康", "长寿", "平安", "平平安安", "家庭", "家庭和睦", "和睦", "子子孙孙", "勤劳", "福气", "福", "致富", "富裕", "富", "合家欢喜", "合家", "欢喜", "喜庆", "喜", "囍", "生意兴隆", "恭喜发财", "大富大贵", "富贵", "富裕", "丰年", "子孙满堂", "心欢喜", "人间喜", "灯火", "灯笼", "烟花", "爆竹"]
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()// 天行数据的KEYvar TIAN_XING_KEY = ''// 天行数据的接口APIvar TIAN_XING_API = 'http://api.tianapi.com/duilian/index'// 百度Tokenvar BAI_DU_ACCESS_TOKEN = '' // 这里需要自行去申请咯~// 百度接口apivar 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错误!' } } }}
感谢各位的阅读,以上就是“怎么撸出春节智能迎春对联小程序”的内容了,经过本文的学习后,相信大家对怎么撸出春节智能迎春对联小程序这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是编程网,小编将为大家推送更多相关知识点的文章,欢迎关注!
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341