使用Python做一个微信机器人

devtools/2024/10/18 19:24:15/

项目功能介绍

现在我们用小程序做一个模拟的应用,智能聊天机器人。发送文字它可以回复一段话,或一张图片,是不是有点小酷!

下面是小程序开发的一个智能聊天机器人的应用界面:

当然,这种智能回复的算法和数据库我们自己肯定是没有的,所以我们借助于gewe框架的开放API接口来完成我们的功能。

gewe框架接口:开发前必读 - GeWe开放平台

智能聊天机器人的开发步骤

1、整体框架

很简单,两个页面。两个tab,并修改window标题栏和tabBar的颜色等属性就好。这个全部在app.json中完成。

2、form表单的使用

表单,将组件内的用户输入的<switch/> <input/> <checkbox/> <slider/> <radio/> <picker/> 提交。

属性名 类型 说明report-submit Boolean 是否返回formId用于发送模板消息bindsubmit EventHandle 携带form中的数据触发submit事件,event.detail = {value : {‘name’: ‘value’} , formId: ”}bindreset EventHandle 表单重置时会触发reset事件当点击 表单中 formType 为 submit 的 <button/> 组件时,会将表单组件中的 value 值进行提交,需要在表单组件中加上 name 来作为 key。

表单提交的要点:

在form内的表单组件必须有name属性。

在form内的button的 formType 属性为 submit 。

form的属性bindsubmit即为数据提交事件绑定的响应函数。

4、wx.request接口的使用

wx.request发起的是 HTTPS 请求。一个微信小程序,同时只能有5个网络请求连接。

在开发调试模式开发工具没有做安全检查,因此是可以请求http的。

wx.request({
url: 'test.php', //仅为示例,并非真实的接口地址

data: {
x: '' ,y: ''},header: {
'content-type': 'application/json'},method: 'GET',success: function(res) {
console.log(res.data)}})

了解http的对这个接口参数应该不陌生,首先url为接口地址,data为请求的参数,header为请求的头,header中不能设置header 中不能设置 Referer。method为请求的方法,包括:OPTIONS, GET, HEAD, POST, PUT, DELETE, TRACE, CONNECT

5、scroll-view组件的使用

scroll-view为可滚动视图容器。这个主要用于聊天界面在有新的消息时需要自动滚动到最新聊天的位置。它的属性还是比较多的,参看文档:开发前必读 - GeWe开放平台

属性名 类型 默认值 说明

scroll-x Boolean false

scroll-y Boolean false 允许纵向滚动

upper-threshold Number 50 距顶部/左边多远时(单位px),触发 scrolltoupper 事件

lower-threshold Number 50 距底部/右边多远时(单位px),触发 scrolltolower 事件

scroll-top Number 设置竖向滚动条位置

scroll-left Number 设置横向滚动条位置

scroll-into-view String 值应为某子元素id,则滚动到该元素,元素顶部对齐滚动区域顶部

bindscrolltoupper EventHandle 滚动到顶部/左边,会触发 scrolltoupper 事件

bindscrolltolower EventHandle 滚动到底部/右边,会触发 scrolltolower 事件

bindscroll EventHandle 滚动时触发,event.detail = {scrollLeft, scrollTop, scrollHeight, scrollWidth, deltaX, deltaY}

这里我们主要用到scroll-y(允许纵向滚动)和scroll-top(设置竖向滚动条位置)属性,以完成聊天内容的自动下翻。

6、两个坑

a、更新数据同时更新scrollTop,无法达到效果

需要先更新数据,然后更新scrollTop

要这样写才可以更新聊天页面内容并将滚动条置于正确的位置

this.setData({content:newContent});this.setData({scrollTop:newScrollTop});

而不能写为下面这样

this.setData({
content:newContent,scrollTop:newScrollTop});

b、textarea的value属性绑定逻辑层的data数据段

在逻辑层调用setData({text:”“}),textarea中数据并不会被清空。这个问题还没找出解决方案,等研究出方法再更新。


http://www.ppmy.cn/devtools/88272.html

相关文章

【Linux】线程互斥

目录 抢票逻辑出现的问题 解释出现的问题 锁 加锁解决抢票问题 锁的底层机制 首先&#xff0c;我们需要了解一些概念&#xff1a; 共享资源&#xff1a;同一进程内的各个线程都能访问的资源叫共享资源 临界资源&#xff1a;把共享资源保护起来后就叫做临界资源&#xff08…

Docker 安装 GitLab教程

本章教程,主要介绍如何在Docker 中安装GitLab。 GitLab 是一个开源的 DevOps 平台,提供了一整套工具,用于软件开发生命周期的各个阶段,从代码管理到 CI/CD(持续集成和持续交付/部署),再到监控和安全分析。 一、拉取镜像 docker pull gitlab/gitlab-ce:latest二、创建 G…

Java零基础之多线程篇:线程间如何通信?

哈喽&#xff0c;各位小伙伴们&#xff0c;你们好呀&#xff0c;我是喵手。运营社区&#xff1a;C站/掘金/腾讯云&#xff1b;欢迎大家常来逛逛 今天我要给大家分享一些自己日常学习到的一些知识点&#xff0c;并以文字的形式跟大家一起交流&#xff0c;互相学习&#xff0c;一…

大学新生编程入门最佳攻略

引言 编程的重要性&#xff1a;简述编程在当今社会的地位&#xff0c;为何它是大学生的必备技能。目标设定&#xff1a;明确文章旨在帮助新生从零基础开始&#xff0c;逐步成长为编程高手。 方向一&#xff1a;编程语言选择 1. 编程语言概览 介绍几种流行语言&#xff1a;如…

netty长连接集群方案

背景 公司某拍卖系统使用的netty服务不支持集群部署,不能进行横向扩展;并且和用户聚合服务耦合在一起,服务多节点部署不能提高拍卖性能,不能支撑更多用户使用拍卖。 目前需要改造并出一个集群的方案。 思路 因为是长连接的服务做集群,需要我们在客户端和服务器建立链接…

Could not connect to Redis at 127.0.0.1:6379: 由于目标计算机积极拒绝,无法连接

目录 报错 解决办法 报错 在redis文件夹的路径栏中输入 cmd 命令&#xff0c;打开控制栏窗口界面 报错说是 redis-cli.exe打开就显示Could not connect to Redis at 127.0.0.1:6379: 由于目标计算机积极拒绝&#xff0c;无法连接。 解决办法 &#xff08;1&#xff09;cmd…

Springboot实战:AI大模型+亮数据代理助力短视频时代

目录 前言1.如何入门亮数据1.1、注册登录1.2、注册账号1.3、登录1.4、购买静态住宅代理1.5、展示购买的代理 2. 使用Springboot、AI大模型构建系统2.1 使用Springboot、AI大模型构建爬虫2.2、在Springboot项目添加工具 3、编写代码&#xff0c;爬取视频素材3.1、代码里使用代理…