【微信开发】公众号自动回复文字和图文链接

标签: 微信 服务器 微信开发 自动回复
7583人阅读 评论(1) 收藏 举报
分类:

需求

在公众号内的输入任意文字,文字相关的第三方网站链接

实现

简单后台设置

我们在微信公众平台上,是可以进行简单的自定义消息回复的。

这里写图片描述

这里的显然不能满足我们的需求。

配置服务器

配置域名

配置测试服务器

略。

和一般我们配置项目没有区别,所以不再赘述。

本次我们的测试域名是 http://***.***.**/***.php

验证Token

在微信的公众后台的开发 / 基本配置 / 填写服务器配置

我们需要配置服务器的地址,在启用配置之前,需要经过微信的token验证。

本文使用的实例代码为PHP.

官方文档给出了验证流程图

这里写图片描述

下面为PHP实现的代码。

//1 获取加密参数

$token = "***";

$signature = $_GET['signature'];

$timestamp  =$_GET['timestamp'];

$nonce = $_GET['nonce'];

$echostr = $_GET['echostr'];

//2 排序数组
$list = [
    'token'=>$token,
    'timestamp'=>$timestamp,
    'nonce'=>$nonce,
];

sort($list);
//拼接字符串

$str ="";
foreach ($list as $value){
    $str .= $value;
}

//加密
$encode_str = sha1($str);
if($encode_str == $signature){
    echo  $echostr;

}

接收消息

在官方文档中,有一个对应的事例代码。

https://wximg.gtimg.com/shake_tv/mpwiki/cryptoDemo.zip

第一步,接收普通消息

这里我们采用明文的方式接收数据。

下面采用官方的接口调试工具。

这里写图片描述

由于是被动调用接口,所以我们只需要从消息中得到最后的用户id以及消息文字就行了。

$msg = file_get_contents("php://input");

$xml = new DOMDocument();

$xml->loadXML($msg);

$from_user_name = $xml->getElementsByTagName("FromUserName")->item(0)->nodeValue;

$msg_type = $xml->getElementsByTagName("MsgType")->item(0)->nodeValue;

$content = $xml->getElementsByTagName("Content")->item(0)->nodeValue;

echo  $from_user_name."  说的类型是".$msg_type.",  内容是".$content;

发送消息

当用户发送消息给公众号时(或某些特定的用户操作引发的事件推送时),会产生一个POST请求,开发者可以在响应包(Get)中返回特定XML结构,来对该消息进行响应(现支持回复文本、图片、图文、语音、视频、音乐)。严格来说,发送被动响应消息其实并不是一种接口,而是对微信服务器发过来消息的一次回复。

也就是说,直接返回对应的xml就行。

下面的简单实现代码,直接返回给用户自己说的话。

$msg = file_get_contents("php://input");

$xml = new DOMDocument();

$xml->loadXML($msg);

$from_user_name = $xml->getElementsByTagName("FromUserName")->item(0)->nodeValue;

$to_user_name = $xml->getElementsByTagName("ToUserName")->item(0)->nodeValue;

$msg_type = $xml->getElementsByTagName("MsgType")->item(0)->nodeValue;

$content = $xml->getElementsByTagName("Content")->item(0)->nodeValue;

$time = time();

$str = "<xml>
<ToUserName><![CDATA[".$from_user_name."]]></ToUserName>
<FromUserName><![CDATA[".$to_user_name."]]></FromUserName>
<CreateTime>".$time."</CreateTime>
<MsgType><![CDATA[text]]></MsgType>
<Content><![CDATA[".$content."]]></Content>
</xml>";

echo $str;

下面是最终实现的效果

这里写图片描述

返回超链接

//前后省略,跟上面的一样

$str = "<xml>
<ToUserName><![CDATA[".$from_user_name."]]></ToUserName>
<FromUserName><![CDATA[".$to_user_name."]]></FromUserName>
<CreateTime>".$time."</CreateTime>
<MsgType><![CDATA[news]]></MsgType>
<ArticleCount>1</ArticleCount>
<Articles>
<item>
<Title><![CDATA[".$content."]]></Title> 
<Description><![CDATA[我是文字描述]]></Description>
<PicUrl><![CDATA[http://avatar.csdn.net/C/6/6/1_diandianxiyu.jpg]]></PicUrl>
<Url><![CDATA[http://blog.coderfix.cn]]></Url>
</item>
<item>
</xml>";

实现效果

这里写图片描述

总结

微信的文档还是十分详细的,我们能通过微信实现很多好玩的功能。

参考资料

查看评论

微信公众号添加关注后自动回复图文信息

登录到微信公众号的后台后,在左侧找到自动回复的按钮,并点击进入。如果只是想在公众号被关注后自动推送纯文字不含图片的的信息的话,直接在右侧被添加自动回复一项下面设置就可以了。如果希望回复的是图文信息,那...
  • wu121jia
  • wu121jia
  • 2015-10-12 15:31:16
  • 6031

微信公众平台开发入门--PHP,实现自动回复文本,图文,点击事件

关键字:微信公众平台 开发模式 图文消息作者:方倍工作室原文:http://www.cnblogs.com/txw1958/p/weixin-97-news.html 在这篇微信公众平台开发教程中,我...
  • abcde158308
  • abcde158308
  • 2017-03-09 16:56:53
  • 5937

微信公众平台消息自动回复+图文自动php

  • 2014年03月13日 10:50
  • 529B
  • 下载

微信公众号添加关注后自动回复图文信息(素材)

公众号在被添加关注后其实不仅可以回复单纯的文字,还有一个效果更好的方式是直接回复图文,在图文信息中传达你的感谢和说明一些公众号的情况。那么微信公众号添加关注后怎么自动回复图文信息?下面小编就为大家介绍...
  • airtwq
  • airtwq
  • 2016-09-01 11:05:57
  • 2797

微信小程序组件 contact-button(客服会话按钮)

微信小程序组件 contact-button(客服会话按钮)contact-button客服会话按钮,用于在页面上显示一个客服会话按钮,用户点击该按钮后会进入客服会话。属性名类型默认值说明sizeNu...
  • zxh1220
  • zxh1220
  • 2018-04-04 11:37:58
  • 46

微信小程序客服消息相关(客服按钮修改)

我会把跟客服消息相关的所有知识和讨论放在这里,以便大家跨越这个门槛; 因为很多人以为客服消息是需要后台的; 1:客服消息开发文档地址:https://mp.weixin.qq.com/de...
  • u012421719
  • u012421719
  • 2017-03-01 18:55:58
  • 16541

微信小程序实现客服默认自动回复功能

微信小程序实现客服默认自动回复功能 程序可通过以下两种方式下发客服消息:1、调用发送客服消息接口;2、使用公众平台网页版客服工具;这里主要讲第1种的做法。 1、小程序管理员的后台配置 登录小...
  • qq_34207892
  • qq_34207892
  • 2018-03-22 13:42:19
  • 695

微信开发实战(5)—粉丝关注开发者公众号时,自动回复消息

上篇文章主要介绍了URL、Token认证,以及使用免费的新浪SAE服务器搭建公众号的web应用。相信按照文章讲解,开发者们已经成功地完成了开发者公众号的配置。 上篇文章提到,URL还有一个作用:认证通...
  • quasimodo_es
  • quasimodo_es
  • 2016-11-09 21:51:05
  • 2273

微信开发之自动回复图文消息

基于 laravel框架的微信公众号的自动回复功能。主要是图文消息和文本类型
  • LJFPHP
  • LJFPHP
  • 2017-08-05 16:05:43
  • 2150

微信公众号开发6图片回复

这里使用  $input_type=$postObj->MsgType;// 分类获取不同的输入信息,然后可用回复不同的信息, 这里直接简单回复文字 if($input_type=="image")...
  • rosekissyou
  • rosekissyou
  • 2017-01-11 16:16:42
  • 730
    个人资料
    专栏达人 持之以恒
    等级:
    访问量: 73万+
    积分: 9778
    排名: 2260
    博客专栏
    谢谢支持~
    最新评论