微信公众号开发(python+werobot)-自动回复

环境准备

有一台外网可以访问的云服务器

微信公众号端的配置

如下图所示的配置,请填写,其中

  • URL: 填写你服务器的地址,即使http://your_address/weixin/index.php
  • 令牌:随便填一个即可

在这里插入图片描述

在/var/www/html 下建weixin目录,并将以下代码保存到index.php中,然后拷贝到/var/www/html/路径。注意文中的xxxxxx环境你自己的token

<?php

/**

  * wechat php test

  */

//define your token

define("TOKEN", "xxxxxx");

$wechatObj = new wechatCallbackapiTest();

$wechatObj->valid();

class wechatCallbackapiTest{

public function valid(){

        $echoStr = $_GET["echostr"];

        //valid signature , option

        if($this->checkSignature()){

        echo $echoStr;

        exit;

        }

    }

    public function responseMsg(){

//get post data, May be due to the different environments

$postStr = $GLOBALS["HTTP_RAW_POST_DATA"];

      //extract post data

if (!empty($postStr)){

              $postObj = simplexml_load_string($postStr, 'SimpleXMLElement', LIBXML_NOCDATA);

                $fromUsername = $postObj->FromUserName;

                $toUsername = $postObj->ToUserName;

                $keyword = trim($postObj->Content);

                $time = time();

                $textTpl = "<xml>

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

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

<CreateTime>%s</CreateTime>

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

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

<FuncFlag>0</FuncFlag>

</xml>";            

if(!empty( $keyword )){

              $msgType = "text";

                $contentStr = "Welcome to wechat world!";

                $resultStr = sprintf($textTpl, $fromUsername, $toUsername, $time, $msgType, $contentStr);

                echo $resultStr;

                }else{

                echo "Input something...";

                }

        }else {

        echo "";

        exit;

        }

    }

private function checkSignature(){

        $signature = $_GET["signature"];

        $timestamp = $_GET["timestamp"];

        $nonce = $_GET["nonce"];

$token = TOKEN;

$tmpArr = array($token, $timestamp, $nonce);

sort($tmpArr);

$tmpStr = implode( $tmpArr );

$tmpStr = sha1( $tmpStr );

if( $tmpStr == $signature ){

return true;

}else{

return false;

}

}

}

?>

以上完成之后点击提交。

编写测试代码

记得安装 pip3 install werobot

示例代码

import werobot

robot = werobot.WeRoBot(token='xxxxxx')

@robot.handler
def hello(msg):
    return 'Hello World!'


robot.config['HOST'] = '0.0.0.0'
robot.config['PORT'] = 80
robot.run()

注意,代码中的token后的xxxxx要和"微信公众号端的配置"中的一致

效果展示:
请添加图片描述

参考文档

WeRoBot开发文档


(backup)
前面是基于python + WeRoBot开发的公众号自动回复,其实如果单纯是聊天,可以点击自动回复菜单栏中开启自动回复,然后接入图灵机器人即可。

在这里插入图片描述
接入图灵机器人的效果展示:
请添加图片描述


(您也可以关注此公众进行测试)
请添加图片描述

  • 3
    点赞
  • 30
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

代码改变世界ctw

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值