1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/dogstar-WechatRobot

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
В этом репозитории не указан файл с открытой лицензией (LICENSE). При использовании обратитесь к конкретному описанию проекта и его зависимостям в коде.
Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
Loading...
README.md

[Гик-разработка] WechatRobot — пакет для разработки ботов в WeChat на PHP

  • Приветствуем вас в WechatRobot!
  • Это очень простой пакет, который поможет вам быстро начать работу с WeChat!
  • Давайте начнем!

С помощью этого короткого и красивого пакета вы можете использовать знакомые или любимые вами фреймворки для разработки приложений WeChat.

Входящий, исходящий, бот

Структура проста: входящий, исходящий, бот. На основе текстового 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('Привет, мир!');
    }
}

2. Общий входной файл

//$ 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:mahua

Также вы можете быстро выполнить следующие команды для моделирования запроса:

//$ 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 )

Вы можете оставить комментарий после Вход в систему

Введение

Описание недоступно Развернуть Свернуть
Отмена

Обновления

Пока нет обновлений

Участники

все

Недавние действия

Загрузить больше
Больше нет результатов для загрузки
1
https://api.gitlife.ru/oschina-mirror/dogstar-WechatRobot.git
git@api.gitlife.ru:oschina-mirror/dogstar-WechatRobot.git
oschina-mirror
dogstar-WechatRobot
dogstar-WechatRobot
master