微信实验八、微信PHP机器人自动回复及源码下载

微信实验八、微信PHP机器人自动回复及源码下载

(>>>>在公众号中输入文章最后彩蛋即可获取源代码)

开源项目:https://github.com/chenxhjeo,个人博客:http://blog.csdn.net/u013487761

技术QQ群名称:豆豆咨询,群号:625686304

微信公众号名称:豆豆咨询,微信公众号:douAsk

初建日期:2017.04.14

一、实验目的 

1、掌握微信PHP机器人自动回复;

2、定义自己的回复内容。 

二、实验内容

1、微信后台PHP接收用户输入,实现自己的回复内容。

2、微信后台PHP调用机器人接口,实现机器人自动回复。

三、实验步骤及过程 

1、微信收发流程

对于每一个POST请求,开发者在响应包中返回特定xml结构,对消息进行被动地响应(现支持回复文本、图片、图文、语音、视频、音乐)。

1)接收用户输入

微信接收用户普通信息包括:文本消息、图片消息、语音消息、视频消息、小视频消息、地理位置消息和链接消息。由于文本消息和语音消息中可以直接得到用户输入的内容,我们采用文本和语音内容

2)分析用户输入的内容

分析用户语音消息和文本消息,决定如何回复内容。

3)回复内容

包括机器人和自定义内容。如图所示。


2、接收用户收入

各消息类型以推送XML数据包结构形式发送数据,包括接收文本消息和语音消息。

1)接收文本消息

文本消息的XML数据包结构如下:

<xml>
 <ToUserName><![CDATA[toUser]]></ToUserName>
 <FromUserName><![CDATA[fromUser]]></FromUserName>
 <CreateTime>1348831860</CreateTime>
 <MsgType><![CDATA[text]]></MsgType>
 <Content><![CDATA[this is a test]]></Content>
 <MsgId>1234567890123456</MsgId>
</xml>

参数说明:

ToUserName:开发者微信号

FromUserName:发送方帐号(一个OpenID)

CreateTime:消息创建时间 (整型)

MsgType:text

Content      :文本消息内容

MsgId:消息id,64位整型

2)接收语音消息

通常接收语音的信息如下:

<xml>
<ToUserName><![CDATA[toUser]]></ToUserName>
<FromUserName><![CDATA[fromUser]]></FromUserName>
<CreateTime>1357290913</CreateTime>
<MsgType><![CDATA[voice]]></MsgType>
<MediaId><![CDATA[media_id]]></MediaId>
<Format><![CDATA[Format]]></Format>
<MsgId>1234567890123456</MsgId>
</xml>

注意,开通语音识别后,用户每次发送语音给公众号时,微信会在推送的语音消息XML数据包中,增加一个Recongnition字段(注:由于客户端缓存,开发者开启或者关闭语音识别功能,对新关注者立刻生效,对已关注用户需要24小时生效。开发者可以重新关注此帐号进行测试)。开启语音识别后的语音XML数据包如下:

<xml>
<ToUserName><![CDATA[toUser]]></ToUserName>
<FromUserName><![CDATA[fromUser]]></FromUserName>
<CreateTime>1357290913</CreateTime>
<MsgType><![CDATA[voice]]></MsgType>
<MediaId><![CDATA[media_id]]></MediaId>
<Format><![CDATA[Format]]></Format>
<Recognition><![CDATA[腾讯微信团队]]></Recognition>
<MsgId>1234567890123456</MsgId>
</xml>

3、接收用户收入

1)分析用户输入的文本信息或语音消息,程序如下:

文本消息:$mystring = (string)trim($object->Content);

或语音消息:$mystring = (string)trim($object-> Recognition);

       $mystring = ' '.$mystring;//字符串比较

       $findme   = '薛之谦';

       __log($mystring);//调试信息

       //接收消息,得到语音识别结果

       if(($pos =stripos($mystring,$findme))){//播放薛之谦动物世界

           //发送语音消息

        } else {

           //发送智能机器人消息

        }

2)说明:当我们接收到用户消息或者语音消息,我们可以采用不同的方法回复用户,如得到用户的消息,然后分析内容,可优先选择我们的处理方法,如果难以处理,则采用智能机器人消息回复。

4、回复音乐

1)上传音乐文件MP3到服务器

我们可以在实验5中申请到了新浪云空间和域名,可以上传文件。任意下载一个MP3文件,例如薛之谦的音乐”动物世界“,我们上传的文件如下:https://78976932.pagekite.me/sinacloud/doud/animalWorld-xuezhiqian.mp3。实验者可以自行上传文件。

2)回复语音结构如下:

<xml>
<ToUserName><![CDATA[toUser]]></ToUserName>
<FromUserName><![CDATA[fromUser]]></FromUserName>
<CreateTime>12345678</CreateTime>
<MsgType><![CDATA[music]]></MsgType>
<Music>
<Title><![CDATA[TITLE]]></Title>
<Description><![CDATA[DESCRIPTION]]></Description>
<MusicUrl><![CDATA[MUSIC_Url]]></MusicUrl>
<HQMusicUrl><![CDATA[HQ_MUSIC_Url]]></HQMusicUrl>
<ThumbMediaId><![CDATA[media_id]]></ThumbMediaId>
</Music>
</xml>

3) 参数说明

参数

是否必须

说明

ToUserName

接收方帐号(收到的OpenID

FromUserName

开发者微信号

CreateTime

消息创建时间 (整型)

MsgType

music

Title

音乐标题

Description

音乐描述

MusicURL

音乐链接

HQMusicUrl

高质量音乐链接,WIFI环境优先使用该链接播放音乐

ThumbMediaId

缩略图的媒体id,通过上传多媒体文件,得到的id

4)回复音乐代码

a. 接收到信息之后,回复音乐消息

//名称:receiveVoice()

    //功能:接收音乐消息

    //返回:回发消息

    private function receiveVoice($object)

    {

        $content = array();

       $content = array("Title"=>"动物世界","Description"=>"歌手:薛之谦","MusicUrl"=>"https://78976932.pagekite.me/sinacloud/doud/animalWorld-xuezhiqian.mp3","HQMusicUrl"=>"https://78976932.pagekite.me/sinacloud/doud/animalWorld-xuezhiqian.mp3");

       $result = $this->transmitMusic($object, $content);

       return $result;

    }

b. 回发音乐消息

//名称:transmitMusic()

    //功能:回复音乐消息

    //返回:音乐消息

    private functiontransmitMusic($object,$musicArray)

    {

       $itemTpl = "<Music>

   <Title><![CDATA[%s]]></Title>

   <Description><![CDATA[%s]]></Description>

   <MusicUrl><![CDATA[%s]]></MusicUrl>

   <HQMusicUrl><![CDATA[%s]]></HQMusicUrl>

</Music>";

      

       $item_str = sprintf($itemTpl, $musicArray['Title'],$musicArray['Description'],$musicArray['MusicUrl'],$musicArray['HQMusicUrl']);

      

       $textTpl = "<xml>

       <ToUserName><![CDATA[%s]]></ToUserName>

       <FromUserName><![CDATA[%s]]></FromUserName>

       <CreateTime>%s</CreateTime>

       <MsgType><![CDATA[music]]></MsgType>

       $item_str

       </xml>";

      

       $result = sprintf($textTpl, $object->FromUserName,$object->ToUserName,time());

       return $result;

    }

上述代码中,ThumbMediaId省略是因为公众号没有上传资源的权限。

5、回复机器人消息

我们采用图灵机器人接口回复用户消息,代码如下:

$apiKey="APIkeydbe970f9fc7f444e9e0e7436c125c8dc";//你的appkey

    $INFO = $object->Recognition;

    $apiURL="http://www.tuling123.com/openapi/api?key=$apiKey&info=$INFO";//appkey地址

    $cmd=file_get_contents($apiURL);

    $tmp=json_decode($cmd,1);//.$mystring;

    if($tmp[code][0]!="4")//json解码如果不出现错误(返回代码以4开头),则显示文本信息

           {

              $result= $this->transmitText($object, $tmp[text]);

           }

           else

           {

              $content = "出错了!";

              $result = "";

           }

四、技术服务

1 、如果有疑问或者需要帮助,请加入QQ群(群名称:豆豆咨询,群号:625686304);或者公众号douAsk,公众号名称为“豆豆咨询”。 扫描以下二维码,关注“豆豆咨询”

在“豆豆咨询”公众号里输入彩蛋号:1205,即可下载源程序。在“瑞昌快来订”公众号可以测试结果。



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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【修改版】用ChatGPT开发一个书籍推荐微信小程序(三)

文章目录 1 前言1.1 实现原理1.2 在小程序如何衔接1.3 技术架构 2 爬取数据2.1 根据书名爬取信息2.2 根据作者爬取信息2.3 根据类型爬取信息 3 讨论 1 前言 1.1 实现原理 万变不离其宗&#xff0c;还是相当于与ChatGPT交互问答&#xff0c;然后映射到小程序中&#xff0c;以下…

如何在使用密钥登录的时候请求ChatGPT的聊天接口并实现流式输出

一、ChatGPT的参考API地址 API Reference 二、官网相关API介绍 下图是正常请求时候的请求头和body体&#xff0c;这样请求的话是等结果都加载出来后一起出现&#xff0c;并且返回的结果也是标准的json格式。 如果想要实现和ChatGPT一样的效果&#xff0c;官网的这样推荐的&a…

使用 ChatGPT 在几秒钟内生成鼠标移动机器人

在本教程中&#xff0c;我们利用 OpenAI 的语言模型 ChatGPT 的强大功能为鼠标移动机器人生成 Python 代码。 代码应每 2 秒将鼠标指针移动到屏幕上的随机位置。如何在指定时间自动打开计算机凭借基于自然语言输入生成代码的能力&#xff0c;ChatGPT 为希望快速实现某些功能而无…

wechaty搭建微信机器人——超详细版

文章目录 前言一、wechaty是什么&#xff1f;二、准备1.安装 Node.js&#xff08;需要10.0版本以上&#xff09;2.安装Wechaty 总结 前言 提示&#xff1a;这里可以添加本文要记录的大概内容&#xff1a; 例如&#xff1a;随着人工智能的不断发展&#xff0c;机器学习这门技术…

基于ChatGPT的企业微信机器人

1、openAI账号 登录OpenAI的账号后&#xff0c;再点击右上角的“Personal”图标&#xff0c;然后点击“view API keys”进入API页面。 点击“create new secret key”按钮。 生成秘钥之后&#xff0c;把秘钥复制下来。 2、拉取项目代码 git clone https://github.com/zhay…

OpenChatKit :开源的 ChatGPT ,开箱即用!前OpenAI团队打造,GitHub 7000+星

MLNLP社区是国内外知名的机器学习与自然语言处理社区,受众覆盖国内外NLP硕博生、高校老师以及企业研究人员。 社区的愿景是促进国内外自然语言处理,机器学习学术界、产业界和广大爱好者之间的交流和进步,特别是初学者同学们的进步。 ChatGPT的开源平替来了,源代码、模型权…

关于“探码科技”,ChatGPT 如是说

最近 ChatGPT 很火&#xff0c;其高质量的对话让人叹为观止&#xff0c;关于“探码科技”&#xff0c;我们对 ChatGPT 进行了采访&#xff1a; ChatGTP&#xff0c;请你做一个自我介绍&#xff01; 你好&#xff0c;我是 ChatGPT&#xff0c;一个由 OpenAI 开发的自然语言处理…

我利用 ChatGPT 提高工作效率的 5 种方式

技术应该是我们的朋友&#xff0c;而不是我们的敌人 ChatGPT 在 11 月的发布改变了世界。学校阻止该计划&#xff0c;程序员对他们工作中新发现的效率赞不绝口&#xff0c;而创意人员则怀疑他们的工作是否受到威胁。每个人都在想同一个问题&#xff1a;ChatGPT 的未来会是什么样…

ChatGPT技术报告

ChatGPT是一个由OpenAI开发的大型语言模型&#xff0c;是GPT&#xff08;Generative Pretrained Transformer&#xff09;系列模型的一部分。它使用了 Transformer 架构&#xff0c;并在大量的文本数据上进行了预训练。预训练的目的是使模型能够从大量的文本中学习语言知识和模…

体验了一下火爆全球的 ChatGPT,我震惊了

这几天&#xff0c;要说编程圈最热的话题&#xff0c;莫过于OpenAI的ChatGPT&#xff0c;写小说&#xff0c;写代码&#xff0c;找BUG&#xff0c;写论文&#xff0c;画漫画&#xff0c;谱曲……简直没有它干不了的事。 趁着下班时间&#xff0c;我也光速注册体验了一下&#…

起点中文网月票榜爬取及数据分析

此文转载自&#xff1a;https://blog.csdn.net/weixin_45036306/article/details/112385445 起点中文网月票榜爬取及数据分析 文章目录 起点中文网月票榜爬取及数据分析1. 数据爬取 1.1.1 准备1.1.2 网页分析1.1.3 层次爬取1.1.4 数据存储 2. 数据分析及可视化 1. 数据爬取 数…

8篇报告|马斯克称Chat GPT好得惊人

8篇报告&#xff5c;马斯克称Chat GPT好得惊人‼️ 最近&#xff0c;连续刷屏的AI应用ChatGPT火爆全球&#xff0c;成为科技圈第一大热潮。 马斯克在推特上评价 ChatGPT 称&#xff1a;“ChatGPT 好得惊人。我们离强得可怕的 AI 不远了。”比尔盖茨盛赞其影响“不亚于互联网诞…

万字长文解读:从Transformer到ChatGPT,通用人工智能曙光初现

ChatGPT掀起的NLP大语言模型热浪&#xff0c;不仅将各家科技巨头和独角兽们推向风口浪尖&#xff0c;在它背后的神经网络也被纷纷热议。但实际上&#xff0c;除了神经网络之外&#xff0c;知识图谱在AI的发展历程中也被寄予厚望。自然语言处理是如何伴随人工智能各个流派不断发…

ChatGPT 爆火背后的大语言模型到底是什么?

ChatGPT 是一个基于大规模预训练语言模型的自然语言处理技术。大规模预训练语言模型是指利用大量文本语料对神经网络进行预训练&#xff0c;使得神经网络可以学习到语言的各种规律、结构和特征&#xff0c;从而能够实现各种自然语言处理任务。 ChatGPT 是由 OpenAI 团队开发的…

ChatGPT时代,我们可能站到了自然语言编程的大门口

ChatGPT大火&#xff0c;我现在有种感觉&#xff1a;我们可能站到了自然语言编程的门口&#xff0c;一脚下去&#xff0c;也许能把门踹开。 当然&#xff0c;也可能会踢到一块铁板。 回顾我们的编程之路&#xff0c;基本上就是一个编程门槛不断降低的历史。 最早的一批前辈们…

ChatGPT的语言处理功能真有那么强吗?

作为一名语言类专业的学生&#xff0c;听说ChatGPT的语言能力已经超过70~80%的人类&#xff0c;能够与人进行正常对话&#xff0c;那么对它输入一些我们经常分析的歧义句&#xff0c;不知会有何表现。 进入 ChatGPT中文网 网站 朱鸾AI助手 ChatGPT中文网 - ChatGPT国内网页…

斯坦福等学者对ChatGPT做了在NLP几乎所有任务上的优劣势分析

进NLP群—>加入NLP交流群 一句话总结 在NLP的7个代表性任务中的20个流行数据集上系统性的分析ChatGPT的zero-shot学习能力&#xff0c;最终得出ChatGPT在许多有利于推理能力的任务上表现良好&#xff08;例如&#xff0c;算术推理&#xff09;&#xff0c;而在解决序列标注等…

【关于ChatGPT的30个问题】15、ChatGPT会对自然语言处理和人工智能领域产生什么影响?/ By 禅与计算机程序设计艺术

15、ChatGPT会对自然语言处理和人工智能领域产生什么影响? 目录 15、ChatGPT会对自然语言处理和人工智能领域产生什么影响?

复旦邱锡鹏:深度剖析 ChatGPT 类大语言模型的关键技术

分享嘉宾 | 邱锡鹏 整理 | 禾木木&#xff0c;梦依丹 出品 | CSDN&#xff08;ID&#xff1a;CSDNnews&#xff09; ChapGPT 自问世以来&#xff0c;便展现出了令世人惊艳的对话能力。仅用两个月时间&#xff0c;ChatGPT 月活跃用户就达一亿&#xff0c;是史上用户增速最…

【自然语言处理】【ChatGPT系列】ChatGPT的智能来自哪里?

相关博客 【自然语言处理】【大模型】PaLM&#xff1a;基于Pathways的大语言模型 【自然语言处理】【chatGPT系列】大语言模型可以自我改进 【自然语言处理】【ChatGPT系列】WebGPT&#xff1a;基于人类反馈的浏览器辅助问答 【自然语言处理】【ChatGPT系列】FLAN&#xff1a;微…