微信自动回复机器人很受欢迎,可以通过简单的代码编写就可以省去大部分的人工回复时间。接下来贤集网小编要与大家分享的的是微信机器人自动回复消息如何通过PHP与python语言实现。

用python实现微信机器人自动回复消息

代码:

#!/usr/bin / env python3# coding: utf - 8
from wxpy import *
#扫码登陆
bot = Bot()
# 初始化图灵机器人(API key 申请: http: //www.tuling123.com/)
tuling = Tuling(api_key = '******************************')
# 自动回复所有文字消息
@ bot.register(msg_types = TEXT)
def auto_reply_all(msg):
tuling.do_reply(msg)
# 开始运行
bot.join()

python实现机器人自动回复 python微信自动回复机器人_python发音机器人

用PHP语言编写微信自动回复机器人代码

一、实验目的

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

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

二、实验内容

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

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

三、实验步骤及过程

1、微信收发流程

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

1)接收用户输入

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

2)分析用户输入的内容

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

3)回复内容

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

2、接收用户收入

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

1)接收文本消息

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

toUserfromUser1348831860textthis is a test1234567890123456参数说明:
ToUserName:开发者微信号
FromUserName:发送方帐号(一个OpenID)
CreateTime:消息创建时间(整型)
MsgType:text
Content :文本消息内容
MsgId:消息id,64位整型

2)接收语音消息

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

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

toUserfromUser1357290913voicemedia_idFormat腾讯微信团队12345678901234563、接收用户收入

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)回复语音结构如下:

toUserfromUser12345678musicTITLEDESCRIPTIONMUSIC_UrlHQ_MUSIC_Urlmedia_id3)参数说明参数是否必须说明ToUserName是接收方帐号(收到的OpenID)FromUserName是开发者微信号CreateTime是消息创建时间 (整型)MsgType是musicTitle否音乐标题Description否音乐描述MusicURL否音乐链接HQMusicUrl否高质量音乐链接,WIFI环境优先使用该链接播放音乐ThumbMediaId是缩略图的媒体id,通过上传多媒体文件,得到的id4)回复音乐代码

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 = "
%s 
%s
%s
%s
";
$item_str = sprintf($itemTpl, $musicArray['Title'], $musicArray['Description'], $musicArray['MusicUrl'],$musicArray['HQMusicUrl']);
$textTpl = "
%s
%s
%s
music
$item_str
";
$result = sprintf($textTpl, $object->FromUserName, $object->ToUserName, time());
return $result;
}

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

5、回复机器人消息

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

$apiKey="APIkey:dbe970f9fc7f444e9e0e7436c125c8dc"; //你的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 = "";
}