# 快速接入:

# 流程示意:

链接

# 添加插件:

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

链接

# 配置插件

在小程序项目 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。 链接

# 获取用户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
                });
            }
        });
    }
}