微信公众号之语音接口

专栏目录请点击

简介

  1. 当验证信息通过后,我们一般就会微信提供的接口
  2. 在使用微信提供的接口前,我们需要调用api来验证当前,我们能使用那些接口 点击
  3. 注意上面的接口测试,需要我们在微信开发者工具内进行测试,下载微信开发者工具 点击

微信开发者工具的使用

  1. 当下载好微信开发者工具的时候,我们首先要进行扫码登录在这里插入图片描述
  2. 然后我们选择微信网页项目在这里插入图片描述
  3. 把网页的网址复制到地址栏中在这里插入图片描述
  4. 这个时候我们后端会打印出,我们可以使用的js-sdk可以使用的接口
    在这里插入图片描述

语音接口

因为语音识别,需要,先录音,然后进行语音的识别,所以这里
我们通过官网查看语音接口,官网

在这里插入图片描述

代码

语音识别

wx.ready(function () {
    // config信息验证后会执行 ready 方法,所有接口调用都必须在 config 接口获得结果之后,config是一个客户端的异步操作,所以如果需要在页面加载时就调用相关接口,则须把相关接口放在 ready 函数中调用来确保正确执行。对于用户触发时才调用的接口,则可以直接调用,不需要放在 ready 函数中。
    // 验证接口
    wx.checkJsApi({
        jsApiList, // 需要检测的 JS 接口列表,所有 JS 接口列表见附录2,
        success: function (res) {
            // 以键值对的形式返回,可用的 api 值true,不可用为false
            console.log(res)
            // 如:{"checkResult":{"chooseImage":true},"errMsg":"checkJsApi:ok"}
        }
    });
    // 语音api的使用
    const btn = document.getElementById("btn")
    // 微信客户端并不支持ontouchstart,这里用click来进行代替
    let isRecord = false
    btn.onclick = () => {
        if (!isRecord) {
            wx.startRecord() // 开始录音
            isRecord = true
        } else {
            wx.stopRecord({
                success: (res) => {
                    // 拿到录音后,微信会把录音上传到微信服务器,然后返回给开发者一个id
                    const { localId } = res
                    wx.translateVoice({
                        localId: localId, // 需要识别的音频的本地Id,由录音相关接口获得
                        isShowProgressTips: 1, // 默认为1,显示进度提示
                        success: function (res) {
                            isRecord = false
                            alert(res.translateResult); // 语音识别的结果
                        }
                    });
                }
            })
        }

    }
});
  • 公众号客户端不支持长按时间,那么这里我们使用点击事件来模拟长按
  • 因为我们是模拟使用的微信客户端,调用translateVoice 接口的时候,他返回的是一个模拟的信息,如在这里插入图片描述

每日一笑

  1. 因为在测试端我们没法使用语音转换的接口,下面,我们来做一个每日一笑的功能
<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport"
        content="width=device-width,initial-scale=1.0,maximum-scale=1.0,minimum-scale=1.0,user-scalable=no">
    <!-- 嵌入zepto -->
    <script src="https://cdn.bootcdn.net/ajax/libs/zepto/1.2.0/zepto.min.js"></script>
    <title>每日一笑</title>
    <script src="http://res.wx.qq.com/open/js/jweixin-1.6.0.js"></script>
    <script>
        // 1. 绑定安全域名
        // 2. 引入js文件
        // 3. 通过config接口注入权限配置
        var jsApiList = [
            "onMenuShareQQ",
            "onMenuShareQZone",
            "startRecord",
            "stopRecord",
            "translateVoice"
        ]
        wx.config({
            debug: true, // 开启调试模式,调用的所有 api 的返回值会在客户端 alert 出来,若要查看传入的参数,可以在 pc 端打开,参数信息会通过 log 打出,仅在 pc 端时才会打印。
            timestamp: '<%=timestamp%>', // 必填,生成签名的时间戳
            nonceStr: '<%=noncestr%>', // 必填,生成签名的随机串
            signature: '<%=signature%>',// 必填,签名
            jsApiList, // 必填,需要使用的 JS 接口列表
            appId: '<%=appID %>', // 必填,公众号的唯一标识
        });
        wx.ready(function () {
            // config信息验证后会执行 ready 方法,所有接口调用都必须在 config 接口获得结果之后,config是一个客户端的异步操作,所以如果需要在页面加载时就调用相关接口,则须把相关接口放在 ready 函数中调用来确保正确执行。对于用户触发时才调用的接口,则可以直接调用,不需要放在 ready 函数中。
            // 验证接口
            wx.checkJsApi({
                jsApiList, // 需要检测的 JS 接口列表,所有 JS 接口列表见附录2,
                success: function (res) {
                    // 以键值对的形式返回,可用的 api 值true,不可用为false
                    console.log(res)
                    // 如:{"checkResult":{"chooseImage":true},"errMsg":"checkJsApi:ok"}
                }
            });
            // 语音api的使用
            const btn = document.getElementById("btn")
            // 微信客户端并不支持ontouchstart,这里用click来进行代替
            let isRecord = false
            btn.onclick = () => {
                const url = "https://bird.ioliu.cn/joke/rand"
                $.getJSON(url, (res) => {
                    const { data } = res
                    _html = data.reduce((_pre, _cur) => {
                        const { content, url, hashId } = _cur
                        return _pre + `
                            <section>
                                <h2>${content}</h2>
                                <img style="width:100%;" src="${url}" alt="${hashId}">
                            </section>
                        `
                    }, "")
                    $("#content").html(_html)
                })
            }
        });
        wx.error(function (res) {
            // config信息验证失败会执行 error 函数,如签名过期导致验证失败,具体错误信息可以打开 config 的debug模式查看,也可以在返回的 res 参数中查看,对于 SPA 可以在这里更新签名。
        });
    </script>
</head>

<body>
    <h1>这是一个搜索页面</h1>
    <button id="btn">录音</button>
    <div id="content"></div>
</body>

</html>
  1. 在这里我们使用了zepto的类jq的框架
  2. 使用了随机返回每日一笑的接口
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
微信公众号消息发送接口demo是一种可以通过接口调用来发送消息给用户的演示示例。通过该demo,我们可以了解如何使用微信公众号提供的开发接口,来向用户发送不同类型的消息,如文本、图片、语音、视频、音乐、图文等。 在这个demo中,我们首先需要获取自己的微信公众号的AppID和AppSecret,并进行相关的配置。然后,我们需要使用前面获取到的AppID和AppSecret来获取access_token,这是调用接口的凭证。 在调用公众号消息发送接口前,我们还需要获取到要发送消息的用户的openid,可以通过用户授权或其他方式获取。然后,我们可以通过接口调用,向指定用户发送不同类型的消息。 例如,如果我们想发送文本消息,我们需要通过接口指定要发送的用户openid、消息类型为text,并填写文本内容。通过接口调用后,该用户便可以收到我们发送的文本消息。 除了文本消息,我们也可以发送其他类型的消息,如图片、语音、视频、音乐和图文等。对于不同类型的消息,我们需要按照接口要求提供相应的参数,如图片、语音和视频需要提供media_id,音乐需要提供音乐的相关信息,图文需要提供文章列表等。 通过这个demo,我们可以学习和了解如何使用微信公众号的消息发送接口,实现向用户发送不同类型的消息。这对于那些希望通过微信公众号与用户进行互动和传播信息的开发者和企业来说,具有重要的参考和借鉴意义。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值