Rumah >applet WeChat >Pembangunan program mini >Mari lihat dalam artikel ini cara membuat applet 'Couplet Festival Musim Bunga Pintar' untuk Pesta Musim Bunga!

Mari lihat dalam artikel ini cara membuat applet 'Couplet Festival Musim Bunga Pintar' untuk Pesta Musim Bunga!

青灯夜游
青灯夜游ke hadapan
2022-01-17 10:21:193196semak imbas

2022 telah tiba secara rasmi. Hanya tinggal sepuluh hari sebelum Festival Musim Bunga Cina sangat diperlukan untuk Festival Musim Bunga Festival Musim Bunga. Saya harap ia akan membantu semua orang.

Mari lihat dalam artikel ini cara membuat applet 'Couplet Festival Musim Bunga Pintar' untuk Pesta Musim Bunga!

Tahun Baharu semakin hampir, mari buat applet kuplet Festival Musim Bunga yang bijak untuk menceriakan semua orang! Saya mengucapkan selamat tahun baru kepada semua rakan penggali pada tahun 2022 terlebih dahulu! Tahun Baru akan datang tidak lama lagi!

1. Paparan kesan

Random Spring Couplet

Mari lihat dalam artikel ini cara membuat applet Couplet Festival Musim Bunga Pintar untuk Pesta Musim Bunga!

Nyatakan nama keluarga

Mari lihat dalam artikel ini cara membuat applet Couplet Festival Musim Bunga Pintar untuk Pesta Musim Bunga!

Alamat pengalaman
WeChat mengimbas kod QR di bawah atau program harta karun carian WeChat

Mari lihat dalam artikel ini cara membuat applet Couplet Festival Musim Bunga Pintar untuk Pesta Musim Bunga!

Alamat kod sumber

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

Kerja penyediaan

Kuasai bahasa:Bahasa program mini WeChat
Mata teknikal: ①Pembangunan awan program mini WeChat Platform penciptaan pintar Baidu AI - Penulisan Pintar Pasangan Festival Musim Bunga

3. Proses dan Peraturan Permainan

Proses Permainan : Anda boleh mendapatkan apa yang anda inginkan dengan mengklik 随机春联 dan 指定姓氏 Rangkap musim bunga~
Penjelasan istilah: ① Rangkap Rangkap Musim Bunga, paparkan secara rawak sepasang Rangkap Musim Bunga. ②Nyatakan nama keluarga: Masukkan nama keluarga anda untuk menjana kuplet.

4. Langkah-langkah penggunaan

1️⃣Daftar proses applet WeChat dan mulakan pembangunan awan
2️⃣Daftar platform AI Baidu——》Konsol——》Buat aplikasi pemprosesan bahasa semula jadi—— 》Pengesahan dan pengesahan Baidu , dapatkan token——》 Kemudian bawa token ke antara muka Smart Spring Festival Couplets API
3️⃣ Perkara yang perlu diubah suai: APPID (APPID yang dimasukkan semasa membukanya dengan alat pembangun WeChat), token Baidu (dalam fail folder index.js), persekitaran pembangunan awan env (dalam fail app.js)

5 penjelasan logik dan kod teras

1 Penjelasan logik Spring rawak. Kuplet festival

Memandangkan antara muka API kuplet Festival Musim Bunga pintar yang disediakan oleh Baidu memerlukan parameter untuk diluluskan, kami boleh menyediakan pengumpulan data kecil terlebih dahulu, lulus nilai apabila mengklik, dan kemudian kembali kuplet yang diperlukan. Oleh itu, kami telah mengumpulkan beberapa perkataan dan frasa yang digunakan untuk mengalu-alukan Festival Musim Bunga dan meraikan Tahun Baru.

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

Mari lihat dalam artikel ini cara membuat applet Couplet Festival Musim Bunga Pintar untuk Pesta Musim Bunga!

2 Penjelasan logik menentukan nama keluarga

Ini serupa dengan logik daripada kuplet Festival Musim Bunga secara rawak, ia hanya memerlukan pengguna memasukkan nama keluarga mereka, tetapi antara muka API yang digunakan agak janggal Jika anda memasukkan satu nama akhir, kandungan output agak tidak munasabah. Jadi penyelesaian di sini adalah untuk menyambung dan menambah perkataan "家". >

  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 Kod teras

Selepas penjelasan logik sebelumnya, anda mungkin tahu bahawa kod teras ialah kaedah yang dipanggil secara umum. (Bingo~ Anda menekanya)

Kaedah yang dipanggil dengan kuplet rawak

// 随机春联的调用方法
  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]) // 智能写对联
  },

Kaedah dipanggil dengan nama keluarga yang dinyatakan

// 随机春联的调用方法
  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
    })
  },

Panggil kaedah awam bagi kuplet pintar

  // 智能写对联(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
      })
    })
  },

Kaedah awam yang dipanggil oleh fungsi awan

// 注:先看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错误!'
      }
    }
  }

}
(agak berlebihan dalam tengah Kod ini tidak berlebihan, hanya tidak teratur, dan kami masih membangunkan program kecil ini...)

Alamat kod penuh: https://gitee.com/nanfangzhe/wechat_demo

[Cadangan pembelajaran berkaitan:

Tutorial Pembangunan Program Mini]

Atas ialah kandungan terperinci Mari lihat dalam artikel ini cara membuat applet 'Couplet Festival Musim Bunga Pintar' untuk Pesta Musim Bunga!. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:juejin.cn. Jika ada pelanggaran, sila hubungi admin@php.cn Padam