[极客开发]PHP微信机器人开发包 - WechatRobot

首先,欢迎使用WechatRobot!

其次,这是一个很简单的开包,但可以协助您快速进行微信开发!

最后,Here We Go!

开源中国代码托管传送门:http://git.oschina.net/dogstar/WechatRobot

或直接:gti clone https://git.oschina.net/dogstar/WechatRobot.git

一进,一出,一机器人

结构很简单:一进,一出,一机器人。用文字UML图表示是:

Wechat_InMessage  ---- (A)Wechat_Robot ----  (A)Wechat_OutMessage

使用示例

1. 实现自己的机器人

//$ vim ./examples/MyRobot.php

require dirname(__FILE__) . '/../Wechat/Robot.php';

class MyRobot extends Wechat_Robot {

protected function handleText($inMessage, &$outMessage)

{

$outMessage = new Wechat_OutMessage_Text();

$outMessage->setContent('Hello World!');

}

//...

}

2. 统一入口文件

//$ vim ./examples/index.php

/**

* 微信统一入口

*

* @author: dogstar 20150122

*/

/** ------ 如果是首次接入微信,请将下面注释临时去掉 ------**/

// echo $_GET['echostr'];

// die();

if (!isset($GLOBALS['HTTP_RAW_POST_DATA'])) {

die('Access denied!');

}

require_once dirname(__FILE__) . '/MyRobot.php';

try {

$robot = new MyRobot('YourTokenHere...', true);

$rs = $robot->run();

echo $rs;

} catch (Exception $ex) {

//TODO: 出错的处理

}

快速请求

在部署好环境后,用随便输入一个文本内容,即可以微信上看到这样的效果:

同时,也可以快速执行下面的命令来模拟请求:

//$ vim ./examples/test.php

//假装微信请求

echo "模拟发送一条文本消息,内容为:\n一个人\n\n";

$GLOBALS['HTTP_RAW_POST_DATA'] = '14197577236097812988731466682';

echo "返回给微信的报文是:\n";

require_once dirname(__FILE__) . '/index.php';

echo "\n\n";

执行一下:

$ php ./test.php

模拟发送一条文本消息,内容为:

一个人

返回给微信的报文是:

14220274100

单元测试

我们不仅提供可以重用的代码,更希望可以把最佳实践分享给大家。所以,在这里,依然,可以看到我们坚持单元测试的身影。

感兴趣的同学可以看下对应的单元测试代码。

[tests]$ tree

.

└── Wechat

├── OutMessage

│   ├── Wechat_OutMessage_Image_Test.php

│   ├── Wechat_OutMessage_News_Test.php

│   └── Wechat_OutMessage_Text_Test.php

├── Wechat_InMessage_Test.php

└── Wechat_Robot_Test.php

目录结构

代码很简洁,也很容易理解。我们没有提供过多的功能,因为我们相信:少即是多。 只是对微信的接收、回应做了高层的抽象,即对规约层做了统一,便于各开发人员在自己原有的框架基础上快速引入进行微信开发。

[Wechat]$ tree

.

├── InMessage.php

├── OutMessage

│   ├── Image.php

│   ├── Music.php

│   ├── News

│   │   └── Item.php

│   ├── News.php

│   ├── Text.php

│   ├── Video.php

│   └── Voice.php

├── OutMessage.php

├── Plugin

│   ├── DeviceEvent.php

│   ├── DeviceText.php

│   ├── Event.php

│   ├── Image.php

│   ├── Link.php

│   ├── Location.php

│   ├── Text.php

│   ├── Video.php

│   └── Voice.php

└── Robot.php

3 directories, 19 files

帮助

如有问题,欢迎交流,谢谢! 同时,感谢LaneWeChat,因为部分内容参考于它:http://www.oschina.net/p/lanewechat

php开发微信群机器人,[极客开发]WechatRobot - PHP微信机器人开发包相关推荐

  1. 攻防大牛在身边,这群白帽极客的故事太精彩!

    在黑客电影里,神秘的黑客们在键盘上十指如飞,电脑屏幕成串代码飞快刷屏,静静操纵影响世界的走向. 在现实中,有一群白帽子黑客,与用技术恶意牟利的"黑帽子"相反,白帽子是正义的一方,& ...

  2. python微信群管理_利用python实现在微信群刷屏的方法

    hello,我是小小炽,这是我写的第一篇博客,写博客一直都想在写,但是苦于能力尚浅,在各位大牛面前那既然是关公面前耍大刀了,但是其实想来每一个大牛不也是从一个小白慢慢进步学习从而达到一定的高度的吗,而 ...

  3. 企业微信群管理员可以踢人吗?企业微信群怎么自动踢人?

    我们使用企业微信运营客户时,总会有人在企业微信群里面发广告.链接,非常影响其他客户的体验,有没有什么方法将这些人踢出群聊呢? 企业微信群怎么自动踢人? 在企业微信推出群防骚扰功能之前,群管理员最无奈的 ...

  4. 微信群服务器失败是什么原因,为什么微信群转让群主失败?微信群转让群主方法是什么?...

    为什么微信群转让群主失败?微信群转让群主方法是什么?如果你是微信群的群主,您可以转让微信群主的身份给别人哦,有微信用户表示微信群转让群主失败,为什么微信群转让群主失败呢?接下来小编会为大家回答哦. 微 ...

  5. Blockathon(北京):48小时极客开发,区块松11个现场交付项目创意公开

    5月25日-27日,全球首届Blockathon(区块松)在北京中关村e世界联合创业办公社举办,来自新加坡.澳大利亚.韩国.日本等国家以及杭州.深圳.西安.内蒙.上海.北京等城市的100名开发者在48 ...

  6. python开发微信群_Python编程:微信群聊程序的开发与进/线程知识汇总(附代码)

    本文承接上篇文章的客户端-服务器聊天对话程序,进一步设计开发了微信群聊的python模拟程序,涉及的python知识点为:Python实战:聊天软件开发与TCP/Socket编程知识汇总(附代码)和 ...

  7. GeekPwn2019,看一群“少年极客”正“热血开斗”……

    某间密室,机器人特工携带炸弹模型秘密潜入,跨过重重障碍与机关,同时中断报警信号线路,随后悄无声息地放置好炸弹模型,再巧妙地全身而退,分分钟打破次元壁变身成为007-- 看似一部惊险刺激的好莱坞大片,其 ...

  8. 微信群画像,利用词云图分析微信群热点

    微信上有很多个群,不少群都是做了免打扰设置,但有的时候又想知道群里在讨论什么热点问题.利用词云图分析是一个了解某个微信群热点的方法.     本文通过itchat 采集微信群聊记录,用jieba做分词 ...

  9. 微信群聊助手好用吗?微信群聊助手可以发多少个人?

    微信群太多难管理?重点是,垃圾群,无用群太多了?该怎么解决?也许,微信群聊助手这个帮数万群主解决运营难的工具,可以帮助你. 微信群聊助手帮您节省80%的微信群管理成本,省时.省心.省力,还能创造群价值 ...

最新文章

  1. 2019/2/23研究日志
  2. USB数据线内阻对充电电流的影响
  3. 如何选择开源许可证?(转)
  4. C# action,delegate,func的用法和区别
  5. c语言得到txt文件的长度,我利用C语言实现SHA-256算法,需要从一个txt文件中读出数据并把...
  6. mybatisPlus的分页查询
  7. [Hands On ML] 5. 支持向量机
  8. django简介及环境搭建
  9. 【Java】深入剖析Java输入输出的那些细节
  10. 佩斯大学计算机科学世界排名,美国佩斯大学留学推荐 计算机科学专业
  11. 数据告诉你,哪个省才是高考地狱模式?
  12. 华为P30Pro开箱照曝光 四摄模组+徕卡镜头确认
  13. 剑指 Offer II 006. 排序数组中两个数字之和
  14. Github使用技巧
  15. S9300 STP 配置规范
  16. Visio2016卸载干净,以及同时安装Office2016和Visio2016的方法
  17. Java 一个简单的接口使用案例
  18. 进销存系统的成本核算方法一览
  19. 3397. 【GDOI2014模拟】雨天的尾巴
  20. Amazon CloudWatch 介绍/学习

热门文章

  1. 基于Python 3.4 实现的12306查票器
  2. 【AI 交互式聊天】怎样实现财富自由??? 无需等待 Bing ChatGPT : 已经有一个免费自由使用的基于搜索结果响应的 AI 交互式聊天网站了!文中附 Perplexity 网站链接!
  3. 使用springMVC AOP实现日记记录
  4. 钉钉为什么被并入阿里云?
  5. 角色的转变意味着一种责任
  6. 机器学习各个算法7--朴素贝叶斯
  7. 【jQuery 官网】上线流程
  8. 软件测试常用设计模式
  9. 数学建模——论文(latex写作)
  10. 计算机cad理论试题,2017年cad考试试题「含答案」