С помощью этого короткого и красивого пакета вы можете использовать знакомые или любимые вами фреймворки для разработки приложений WeChat.
Структура проста: входящий, исходящий, бот. На основе текстового UML это можно представить следующим образом:
Wechat_InMessage ---- (A)Wechat_Robot ---- (A)Wechat_OutMessage
//$ 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('Привет, мир!');
}
}
//$ vim ./examples/index.php
<?php
/**
* Основной вход для WeChat
*
* @author: dogstar 20150122
*/
/** ------ Если вы впервые подключаетесь к WeChat, временно удалите следующую строчку ------**/
//echo $_GET['echostr'];
//die();
if (!isset($GLOBALS['HTTP_RAW_POST_DATA'])) {
die('Доступ запрещён!');
}
require_once dirname(__FILE__) . '/MyRobot.php';
try {
$robot = new MyRobot('ВашТокенЗдесь...', true);
$rs = $robot->run();
echo $rs;
} catch (Exception $ex) {
//TODO: Обработка ошибок
}
После установки окружения, просто отправьте любой текстовый контент, чтобы увидеть такой эффект в WeChat:
Также вы можете быстро выполнить следующие команды для моделирования запроса:
//$ vim ./examples/test.php
<?php
//Моделирование запроса от WeChat
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 "Ответ WeChat:\n";
require_once dirname(__FILE__) . '/index.php';
echo "\n\n";
Выполните следующее:
$ php ./test.php
Моделирование отправки текстового сообщения с содержанием:
Один человек
Ответ, возвращаемый WeChat:
<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, а также унифицировали слои регламентов, чтобы каждый разработчик мог быстро внедрять WeChat в свой существующий фреймворк.
[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
Если у вас возникли вопросы, пожалуйста, свяжитесь с нами для обсуждения, спасибо!
Кроме того, мы благодарим LaneWeChat за некоторые идеи, взятые из этого проекта: http://www.oschina.net/p/lanewechat
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Комментарии ( 0 )