[极客开发]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
.
├── 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