搜尋
首頁微信小程式小程式開發一文看看如何擼出春節「智慧迎春對聯」小程式!

2022已經正式來臨,距離中國人的農曆春節僅剩十幾天了,春節必不可少的就是春聯了,下面本篇文章看看怎麼實現春節「智能迎春對聯」小程序,希望對大家有所幫助!

一文看看如何擼出春節「智慧迎春對聯」小程式!

新年將至,做個智能迎春對聯小程式給大夥助助興!提前祝各位掘友們,2022年新年快落!新春快落!

一、效果展示

隨機春聯

一文看看如何擼出春節「智慧迎春對聯」小程式!

#指定姓氏

一文看看如何擼出春節「智慧迎春對聯」小程式!


#體驗位址

#微信掃描下面的二維碼or 微信搜尋寶藏程式一文看看如何擼出春節「智慧迎春對聯」小程式!

##原始碼位址

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 = ["虎", "虎年", "迎春", "春节", "过年", "年兽", "过春节", "初一", "年初", "红红火火", "红火", "开心", "开开心心", "健康", "健健康康", "长寿", "平安", "平平安安", "家庭", "家庭和睦", "和睦", "子子孙孙", "勤劳", "福气", "福", "致富", "富裕", "富", "合家欢喜", "合家", "欢喜", "喜庆", "喜", "囍", "生意兴隆", "恭喜发财", "大富大贵", "富贵", "富裕", "丰年", "子孙满堂", "心欢喜", "人间喜", "灯火", "灯笼", "烟花", "爆竹"]
一文看看如何擼出春節「智慧迎春對聯」小程式!

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脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱工具

MantisBT

MantisBT

Mantis是一個易於部署的基於Web的缺陷追蹤工具,用於幫助產品缺陷追蹤。它需要PHP、MySQL和一個Web伺服器。請查看我們的演示和託管服務。

SublimeText3 Linux新版

SublimeText3 Linux新版

SublimeText3 Linux最新版

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

Atom編輯器mac版下載

Atom編輯器mac版下載

最受歡迎的的開源編輯器

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)