小程序插件接入指引

news2025/2/23 13:22:07

微信对话开放平台小程序插件

微信对话开放平台是以对话交互为核心, 为有客服需求的个人、企业和组织提供智能服务与用户管理的配置平台。开发者可利用我们提供的工具自主完成对话机器人的搭建。

微信对话开放平台小程序插件,提供两种调用方式,一种是有UI组件式调用,另一种是无UI 功能接口调用。

展示效果:

bab2c20230725153609208.png

f181e202307251536146935.png

效果示例:

b19eb202307251536232471.png

快速接入:

流程示意:

dc902202307251536323680.png

添加插件:

在微信公众平台【设置】-【第三方设置】-【插件管理】->添加 wx8c631f7e9f2465e1 插件的使用申请,或点击这里申请使用插件。

b2d4b202307251536424138.png

配置插件

在小程序项目 app.json 中配置插件最新的版本号,或点击这里查看使用插件操作。

{
  "pages": [
    "pages/index/index"
  ],
  "plugins": {
    "chatbot": {
      "version": "插件最新版本号",
      "provider": "wx8c631f7e9f2465e1"
    }
  }
}

插件初始化

在 app.js 中进行插件初始化

var plugin = requirePlugin("chatbot");

plugin.init({
    appid: "", //微信对话开放平台小程序插件appid
    openid: "", // 小程序用户的openid,必填项
    userHeader: "", // 用户头像,不传会弹出登录框
    userName: "", // 用户昵称,不传会弹出登录框
    anonymous: false, // 是否允许匿名用户登录,版本1.2.9后生效, 默认为false,设为true时,未传递userName、userHeader两个字段时将弹出登录框
    success: () => {},//非必填
    fail: (error) => {},//非必填
});

获取appID

在微信对话开放平台官网【发布管理】-【应用绑定】-【小程序】-【小程序插件】中点击【获取配置】,取得appID。

8cbf2202307251537029070.png

获取用户openID

第一步:调用 wx.login(),获取临时 code

相关文档 https://developers.weixin.qq.com/miniprogram/dev/api/open-api/login/wx.login.html

第二步:将获取到的 code 发送给后台换取 openid

相关文档 https://developers.weixin.qq.com/miniprogram/dev/framework/open-ability/login.html

wx.login({
    success: (res) => {
        // 通过code换取openid
        if (res.code) {
            wx.request({
                url: "",
                method: "post",
                data: {
                    code: res.code,
                },
                success: (res) => {
                    if (res.data && res.data.openid) {
                        // 获取的openid存入storage,方便之后使用
                        wx.setStorageSync("openId", res.data.openid);
                    }
                },
            });
        }
    },
    fail: () => {},
    complete: () => {},
});

引入插件

{
  "usingComponents": {
    "chat": "plugin://chatbot/chat"
  }
}

使用插件

在相应的wxml页面内

chat 组件外部必须指定容器, 并设置容器高度, 如果全屏展示, 设置高度为 100vh, 如果是自定义导航栏, 设置高度为(100vh - 导航栏的高度)即可.
<view style="height: 100vh">
    <chat
        bind:queryCallback="getQueryCallback"
        bind:openWebview="openWebview"
        bind:openMiniProgram="openMiniProgram"
    />
</view>

配置回调方法

在相应页面的 js 中配置返回首页回调方法

getQueryCallback: function(e) {

}

点击机器人回答里的链接跳转 webview,需要开发者自己配置一个承载 webview 的页面,url 字段对应的小程序页面需要开发者自己创建

开发者需要在小程序后台配置相应的域名

1.1.7 版本开始支持

openWebview: function(e) {
    let url = e.detail.weburl
    wx.navigateTo({
        url: `/pages/webviewPage/webviewPage?url=${url}`
    })
}

点击机器人回答中的小程序,需要在开发者自己的小程序内做跳转

开发者需要在小程序配置中指定跳转小程序的 appId

1.1.7 版本开始支持

openMiniProgram(e) {
    let {appid, pagepath} = e.detail
    if (appid) {
        wx.navigateToMiniProgram({
            appId: appid,
            path: pagepath,
            extraData: {},
            envVersion: "",
            success(res) {
                // 打开成功
            }
        });
    } else {
        wx.navigateTo({
            url: pagepath,
            fail() {
                wx.switchTab({
                    url: pagepath
                });
            }
        });
    }
}

开源示例

示例源码配置案例
组件复写示例(自定义导航栏版)
组件复写示例(系统导航栏版)
末日生存游戏末日生存游戏-配置案例
小微写诗
预订火车票预订火车票配置案例
词法分析-大爆炸

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/790206.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

jdk1.7官网免登录下载

官网地址&#xff1a; Java Archive Downloads - Java SE 7 (oracle.com) 点进去之后&#xff0c;就可以看见如下的的界面 打开迅雷&#xff0c;在下载中点击新建 补充&#xff1a; jdk各个版本的地址&#xff1a; Java Archive | Oracle

春秋云境:CVE-2022-23316(taoCMS v3.0.2 存在任意文件读取漏洞)

一、题目 靶标介绍&#xff1a; taoCMS v3.0.2 存在任意文件读取漏洞 二、进入题目 和这题有异曲同工之妙&#xff1a; 春秋云境&#xff1a;CVE-2022-23880&#xff08;taoCMS v3.0.2 任意文件上传漏洞&#xff09;_小孔吃不胖的博客-CSDN博客 访问/admin admin&#xf…

汽车充电桩按照安装的地点可以分哪几类

汽车充电桩按照安装地点分哪几类 你是否曾经想过&#xff0c;在城市的大街小巷中&#xff0c;那一排排沉默的绿色盒子&#xff0c;究竟是什么?它们叫做汽车充电桩&#xff0c;是我们未来出行的重要一环。那么&#xff0c;你知道这些充电桩按照安装地点分哪几类吗? 汽车充电桩…

vue3:vue3.2升级至vue3.3/vue升级版本

一、目标 Vue 3.2项目到Vue 3.3 二、操作 2.1、更新Vue的版本 pnpm add vuelatest2.2、更新Vue CLI的版本 如果你正在使用Vue CLI来创建和管理你的Vue项目&#xff0c;更新Vue CLI pnpm add -g vue/clilatest2.3、检查你的Vue项目的依赖项 你需要确保项目中的所有依赖项…

【面试】MySQL 中InnoDB与MyISAM的区别是什么?

文章目录 前言一、数据库存储引擎二、如何知道自己的数据库用的什么引擎呢&#xff1f;三、存储引擎原理四、B 树和 B 树五、MyISAM六、InnoDB七、InnoDB与MyISAM的区别总结 前言 许多同学都把 MySQL 作为自己的数据库&#xff0c;但是可能用过最多的就是 SQL 语句&#xff0c…

降压电路原理 12V电源是如何下降到5V?

引言&#xff1a; 12V-5V开关电源设计原理&#xff1a;以12V电压作为输入&#xff0c;通过控制开关电路的通断时间&#xff0c;实现电感的充放电时间&#xff0c;改变输出电压的平均值&#xff0c;然后进行LC滤波&#xff0c;对输出电压进行电压和电流反馈控制&#xff0c;使其…

open3d和pcl点云转换及多线程加速

目录 写在前面准备转换源码编译运行结果 参考完 写在前面 1、本文内容 open3d和pcl点云互转&#xff0c;并使用多线程加速 2、平台/环境 通过cmake构建项目&#xff0c;跨平台通用&#xff1b;open3d&#xff0c;pcl 3、转载请注明出处&#xff1a; https://blog.csdn.net/qq…

【Visual Studio】VS调用tensorflow C++API的配置(无需编译)

1. 首先下载并安装visual studio Visual Studio 2015 安装教程&#xff08;附安装包&#xff09;&#xff0c;按照博客中顺序来就可以 如果在安装过程中提示安装包损失或毁坏&#xff0c;参考VS2015安装过程中安装包丢失或损坏解决办法 卡在哪个搜索文件上就找到哪个文件再继…

不同编程语言复现ELO匹配机制与机制原理理解

本章概述 从数学角度分析 分别用c java python演示算法机制 数学理论 预期胜率计算公式 积分算法 为什么排位比以前更难&#xff1f; elo使玩家尽量其股相当 双方实力进来保证持平elo算法基于预先假设: 一名选手的当前实力受各种因素的影响会在一定范围内波动&#xff0c;…

【VUE】vue3 SFC方式实现九宫格效果

效果图 调用方式 <template><grid class"grid-demo" isScale><grid-item class"grid-demo-item">1</bg-grid-item><grid-item class"grid-demo-item">2</bg-grid-item><grid-item class"grid-demo…

索引的数据结构

索引的数据结构 部分资料来自B站尚硅谷-宋红康老师 1. 为什么使用索引 使用索引是为了加快数据库的查询速度和提高数据库的性能。索引是数据库表中的一种数据结构&#xff0c;它可以帮助数据库快速定位并检索所需的数据。 当数据库表中的数据量较大时&#xff0c;如果没有索…

Training-Time-Friendly Network for Real-Time Object Detection 论文学习

1. 解决了什么问题&#xff1f; 目前的目标检测器很少能做到快速训练、快速推理&#xff0c;并同时保持准确率。直觉上&#xff0c;推理越快的检测器应该训练也很快&#xff0c;但大多数的实时检测器反而需要更长的训练时间。准确率高的检测器大致可分为两类&#xff1a;推理时…

uni-app:实现账号密码登录,并且实现当页面登录过该账号在下次登录时无需再输入账号密码(本地缓存实现)

效果 前端代码 一、完整代码 <template><view><view class"all"><view class"title"><image :src"title_login" alt"图片损坏" /></view><form class"login-form" submit"fo…

JAVA面试总结-Redis篇章(二)——缓存击穿

JAVA面试总结-Redis篇章&#xff08;二&#xff09; 缓存击穿解决方案一&#xff1a;互斥锁解决方案二&#xff1a;逻辑过期![在这里插入图片描述](https://img-blog.csdnimg.cn/176dfab3e26044a9a730fabea4314e8e.png) 缓存击穿 解决方案一&#xff1a;互斥锁 解决方案二&…

SpringBoot-5

Spring Boot 的项目属性配置 在项目中很多时候需要用到一些配置的信息&#xff0c;这些信息可能在测试环境和生产环境下会有不同的配置&#xff0c;后面根据实际业务情况有可能还会做修改&#xff0c;针对这种情况不能将这些配置在代码中写死&#xff0c;最好就是写到配置文件…

Rust vs Go:常用语法对比(六)

题图来自[1] 101. Load from HTTP GET request into a string Make an HTTP request with method GET to URL u, then store the body of the response in string s. 发起http请求 package mainimport ( "fmt" "io/ioutil" "net" "net/http…

Fiddler使用说明及中文绿化版

Fiddler是最常用的Web调试工具之一。 对于开发来说&#xff0c;前端可以通过fiddler代理来调试JS、CSS、HTML样式。后端可以通过fiddler查看请求和相应&#xff0c;定位问题。 对于测试来说&#xff0c;可以通过抓包方式修改前端请求参数和模拟后端返回&#xff0c;快速定位缺…

Pr LOGO平滑过渡效果

哈喽&#xff0c;各位小伙伴&#xff01;今天我们来学习一下如何制作LOGO平滑过渡效果&#xff1f; 准备工作 两个透明LOGO&#xff0c;一个水滴音效 ​新建序列 新建一个1920*1080的序列&#xff0c;将图片拖拽至轨道 CtrlR 图片时长设置为3SCtrlD 快速添加过渡效果右键…

【Python】生成md5码

目录 1 代码 2 运行结果 使用hashlib库来生成md5码。如下代码会生成Happy every day的md5哈希值。 1 代码 import hashlibdef generate_md5(string):md5 hashlib.md5()md5.update(string.encode(utf-8))return md5.hexdigest()if __name__ __main__:MD5 generate_md5(&qu…

测试开源C#人脸识别模块ViewFaceCore(3:人脸特征提取和对比)

ViewFaceCore模块的FaceRecognizer支持人脸特征提取和对比&#xff0c;将人脸中的关键信息转换为矢量信息&#xff0c;然后通过计算两个矢量的相似度以判断人脸的相似程序。   调用FaceRecognizer对比人脸相似度主要包括以下步骤&#xff1a;   1&#xff09;调用faceDetec…