44 Star 86 Fork 20

dogstar / WechatRobot

Create your Gitee Account
Explore and code with more than 8 million developers,Free private repositories !:)
Sign up
This repository doesn't specify license. Please pay attention to the specific project description and its upstream code dependency when using it.
Clone or Download
contribute
Sync branch
Cancel
Notice: Creating folder will generate an empty file .keep, because not support in Git
Loading...
README.md

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

  • 首先,欢迎使用WechatRobot!
  • 其次,这是一个很简单的开包,但可以协助您快速进行微信开发!
  • 最后,Here We Go!

利用这个短而美的微信包,您可以使用你原来熟悉或者喜欢的框架来进行微信开发。

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

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

mahua
##使用示例 ####1. 实现自己的机器人

//$ vim ./examples/MyRobot.php 

<?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 

<?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: 出错的处理
}

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

mahua

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

//$ vim ./examples/test.php 
<?php
//假装微信请求

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

$GLOBALS['HTTP_RAW_POST_DATA'] = '<xml><ToUserName><![CDATA[gh_43235ff1360f]]></ToUserName>
<FromUserName><![CDATA[oWNXvjipYqRViMpO8GZwXxE43pUY]]></FromUserName>
<CreateTime>1419757723</CreateTime>
<MsgType><![CDATA[text]]></MsgType>
<Content><![CDATA[一个人]]></Content>
<MsgId>6097812988731466682</MsgId>
</xml>';

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

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

echo "\n\n";

执行一下:

$ php ./test.php 
模拟发送一条文本消息,内容为:
一个人

返回给微信的报文是:
<xml>
<ToUserName><![CDATA[oWNXvjipYqRViMpO8GZwXxE43pUY]]></ToUserName>
<FromUserName><![CDATA[gh_43235ff1360f]]></FromUserName>
<CreateTime>1422027410</CreateTime>
<MsgType><![CDATA[text]]></MsgType>
<Content><![CDATA[Hello World!]]></Content>
<FuncFlag>0</FuncFlag>
</xml>

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

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

[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

About

极客微信开发 - PHP微信服务号机器人开发包,提供一个便捷的PHP的微信开发包,从而可以让开发人员轻松在自己想要的框架上进行微信开发,体验微信开发的乐趣。 expand collapse
PHP
Cancel

Releases

No release

WechatRobot

Contributors

All

Activities

Load More
can not load any more
PHP
1
https://gitee.com/dogstar/WechatRobot.git
git@gitee.com:dogstar/WechatRobot.git
dogstar
WechatRobot
WechatRobot
master

Search