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

OSCHINA-MIRROR/Taurus12C-wechat

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

Разработка в процессе

Подробнее см. комментарии в файле index.php

Для разработки используется тестовый номер WeChat, полученный мной. Чтобы самостоятельно протестировать, можно получить свой тестовый номер WeChat на странице тестового номера WeChat.

Проект находится в стадии разработки. При возникновении проблем обращайтесь ко мне.

Структура директорий

|—— cache                       Кэш файлов
|—— lib                         Основные пакеты
|   |—— cache                   Драйвер кэширования
|   |—— core                    Ядро
|   |—— http                    Драйвер HTTP запросов
|   |—— Cache.php               Класс кэширования
|   |—— Config.php              Класс получения конфигураций
|   |—— Http.php                Класс HTTP запросов
|   |—— Wechat.php              Основной класс
|—— vendor                      зависимости Composer
|—— config.php                  Конфигурационный файл
|—— index.php                   Пример методов

Установка: composer require taurus12c/wechat

Как использовать

1. Начало

Настройте файл конфигурации config.php, импортируйте класс Wechat и завершите разработку WeChat.

use wechat\lib\Wechat;


Создайте объект

$wechat = new Wechat();


2. Аутентификация

Метод проверки подписи сервера API. Обычно требуется один раз.

$wechat->checkSignature();


Получение глобального access_token WeChat, используемого при вызовах API от имени учетной записи WeChat.

$global_access_token = $wechat->getGlobalAccessToken();


Получение информации пользователя через авторизацию WeChat

$userInfo = $wechat->getUserInfo();


Получение уникального идентификатора пользователя (openid), который не требует перехода на страницу авторизации.

$openid = $wechat->getOpenId();


3. Создание меню

// Настройка меню учетной записи WeChat. Входящие данные $data должны быть массивом, а выходные данные — булевым значением. См. правила создания меню WeChat.

$data = [
     "button"=>[
         [
             "name"         =>"Кнопка 1",
             "type"         =>"view",
             "url"          =>"http://www.baidu.com",
         ],
         [
             "name"         =>"Кнопка 2",
             "sub_button"   =>[
                 [
                     "name"         =>"Подменю 1",
                     "type"         =>"view",
                     "url"          =>"http://www.baidu.com"
                 ]
             ]
         ]
     ]
];

$setMenu = $wechat->menu->setMenu($data);

Получение текущего настроенного меню

$getMenu = $wechat->menu->getMenuInfo();


Удаление настроенного меню

$delMenu = $wechat->menu->delMenu();


Настройка условного меню, $data — стиль настройки меню, $matchrule — правило соответствия условного меню, возвращает булевое значение, подробности см. в руководстве WeChat

$data = [
    "button"=>[
        [
            "name"         =>"Кнопка 1",
            "type"         =>"view",
            "url"          =>"http://www.baidu.com",
        ],
        [
            "name"         =>"Кнопка 2",
            "sub_button"   =>[
                [
                    "name"         =>"Подменю 1",
                    "type"         =>"view",
                    "url"          =>"http://www.baidu.com"
                ]
            ]
        ]
    ],
];
$matchrule = [
    "matchrule"=>[
        "tag_id"=> "2",
        "sex"=> "1",
        "country"=> "Китай",
        "province"=> "Гuangdong",
        "city"=> "Guangzhou",
        "client_platform_type"=> "2",
        "language"=> "zh_CN"
    ]
];

$setMenuConditional = $wechat->menu->setMenuConditional($data,$matchrule);

Получение информации о условном меню

$getMenuConditionalInfo = $wechat->getMenuConditionalInfo();


4. Управление сообщениями

Получение сообщений от пользователя, возвращаемый тип данных — массив, содержимое данных см. в руководстве разработки WeChat

$msg = $wechat->getMsg();


Ответ пользователю текстовым сообщением, параметры: openid пользователя, openid разработчика, текстовое сообщение.

$sendText = $wechat->sendText($msg['FromUserName'],$msg['ToUserName'],'Вы отправили следующее сообщение:'.$msg['Content']);


Ответ пользователю изображением, параметры: openid пользователя, openid разработчика, id материала изображения.

$sendImg = $wechat->sendImg($toUserName,$fromUserName,$mediaId);


Ответ пользователю голосовым сообщением, параметры: openid пользователя, openid разработчика, id материала голосового сообщения.

$sendVoice = $wechat->sendVoice($toUserName,$fromUserName,$mediaId);


Ответ пользователю видео, параметры: openid пользователя, openid разработчика, массив сформированного в соответствии со следующими примерами.

$content = [
        'title'     => '', //Заголовок
        'desc'      => '', //Описание
        'mediaId'   => '', //ID загруженного материала
    ];

$sendVideo = $wechat->sendVoice($toUserName,$fromUserName,$content);

Ответ пользователю музыкальным сообщением, параметры: openid пользователя, openid разработчика, массив сформированного в соответствии со следующими примерами.

$content = [
        'title'         => '', //Заголовок
        'desc'          => '', //Описание
        'url'           => '', //Ссылка на музыку
        'Hurl'          => '', //Ссылка на высококачественную музыку, воспроизводится при наличии Wi-Fi
        'thumbMediaId'  => '', //Идентификатор миниатюрного изображения, ID загруженного материала
    ];

$sendMusic = $wechat->sendVoice($toUserName,$fromUserName,$content);

Ответ пользователю новостями, параметры: openid пользователя, openid разработчика, массив сформированного в соответствии со следующими примерами.

$articles = [
        'Первая статья' => [
            'title'     => '', //Заголовок
            'desc'      => '', //Описание
            'picurl'    => '', //URL миниатюрного изображения
            'url'       => '', //URL для перехода
        ],
        'Вторая статья' => [],
        'Третья статья' => [],
        ... //Можно отправить до 8 статей за раз, ограничения см. в руководстве разработки WeChat
    ];

$sendNews = $wechat->sendNews($toUserName,$fromUserName,$articles);

5. Управление материалами

Предупреждение по загрузке материалов
Изображение (image): 2МБ, поддерживает PNG/JPEG/JPG/GIF форматы
Аудио (voice): 2МБ, продолжительность не более 60 секунд, поддерживает AMR/MP3 форматы
Видео (video): 10МБ, поддерживает MP4 формат
Миниатюра (thumb): 64КБ, поддерживает JPG формат

Загрузка временной медиа-материала изображения, параметр 1: путь к файлу. Возвращает JSON-строка, содержимое данных см. в руководстве разработки WeChat

$tempMedia = $wechat->media->addImgTempMedia($filepath);


Загрузка временной медиа-материала аудио, параметр 1: путь к файлу. Возвращает JSON-строка, содержимое данных см. в руководстве разработки WeChat

$tempMedia = $wechat->media->addVoiceTempMedia($filepath);


Загрузка временной медиа-материала видео, параметр 1: путь к файлу. Возвращает JSON-строка, содержимое данных см. в руководстве разработки WeChat

$tempMedia = $wechat->media->addVideoTempMedia($filepath);


Загрузка временной медиа-материала миниатюры, параметр 1: путь к файлу. Возвращает JSON-строка, содержимое данных см. в руководстве разработки WeChat

$tempMedia = $wechat->media->addThumbTempMedia($filepath);


Получение временной медиа-материала, параметр 1: media_id. Изображения возвращаются как строка файла, видео — как JSON-строка с URL адресом. Пример сохранения изображения в локальный файл:

$getTempMedia = $wechat->media->getTempMedia($media_id);

$file = fopen('test.jpg','w+');
fwrite($file,$getTempMedia);
fclose($file);

Получение медиа-материала JSSDK

$getJssdkMedia = $wechat->media->getJssdkMedia($media_id)


Загрузка постоянной медиа-материала изображения

$addImgMaterial = $wechat->media->addImgMaterial($file);


Загрузка постоянной медиа-материала аудио

$addVoiceMaterial = $wechat->media->addVoiceMaterial($file);


Загрузка постоянной медиа-материала видео, параметры: путь к файлу, название, описание

$addVideoMaterial = $wechat->media->addVideoMaterial($file,$title,$introduction);


Загрузка постоянной медиа-материала миниатюры

$addThumbMaterial = $wechat->media->addThumbMaterial($file);

---Загрузка постоянной медиа-материала новостей, параметры: массив контента, возвращает media_id материала

$articles = [
    [
        "title"             =>      'Заголовок',                // Заголовок
        "thumb_media_id"    =>      'MEDIA_ID_THUMBNAIL',       // ID миниатюрного изображения (должен быть permanent media ID)
        "author"            =>      'Автор',                    // Автор
        "digest"            =>      'Резюме',                   // Резюме новости, если это одиночная новость, то здесь будет первые 64 символа текста, если это серия новостей, то здесь будет пусто.
        "show_cover_pic"    =>      'SHOW_COVER_PIC(0 / 1)',    // Показывать ли миниатюру, 0 - нет, 1 - да
        "content"           =>      'Контент',                  // Контент новости, поддерживается HTML, должно быть меньше 20000 символов, меньше 1МБ, JS будет удален, внешние ссылки на изображения будут удалены.
        "content_source_url"=>      'SOURCE_URL',               // URL источника новости
        "need_open_comment" =>      '1',                        // Открыть ли комментарии, 0 - нет, 1 - да
        "only_fans_can_comment"=>   '1'                         // Только ли фанаты могут комментировать, 0 - все могут, 1 - только фанаты
    ],
    [
        // ...
    ],
    // Максимальное количество новостей - 8
];

$addArticleMaterial = $wechat->media->addArticleMaterial($articles);

Загрузка изображения внутри новостей, возвращает URL изображения (поддерживаются форматы jpg/png, размер менее 1МБ)

$addArticleImgMaterial = $wechat->media->addArticleImgMaterial($file);


Получение постоянной медиа-материала, параметр 1: media_id. Новости и видео возвращаются как JSON-строка, остальные — как двоичные файлы.

$getMaterial = $wechat->media->getMaterial($media_id);


Получение общего количества медиа-материалов, возвращает JSON-строка

$getMaterialCount = $wechat->media->getMaterialCount();


Получение списка медиа-материалов, параметры: тип материала (image/video/voice/news), начальная позиция для выгрузки, количество записей для выгрузки. Возвращает JSON-строка.

$getMaterialList = $wechat->media->getMaterialList($type, $offset, $count);


Удаление постоянной медиа-материала

$delMaterial = $wechat->media->delMaterial($media_id);

6. Управление пользователями

Создание метки пользователя, параметр 1: имя метки

$tag = $wechat->user->createTag($name);


Получение созданных меток

$tagList = $wechat->user->tagList();


Обновление названия метки, параметры: ID метки, новое название метки

$upTag = $wechat->user->upTag($id, $name);


Удаление метки, параметр 1: ID метки

$delTag = $wechat->user->delTag($id);


Получение списка пользователей в метке, параметры: ID метки, начальная позиция для выгрузки

$tagUserList = $wechat->user->tagUserList($id, $offset);


Добавление метки к пользователям, параметры: список openid, ID метки

$openid_list=[
    // Список пользователей
    "ocYxcuAEy30bX0NXmGn4ypqx3tI0",
    "ocYxcuBt0mRugKZ7tGAHPnUaOW7Y"
];
$tagUser = $wechat->user->tagUser($openid_list, $id);

Удаление метки у пользователей, параметры: список openid, ID метки

$openid_list=[
    // Список пользователей
    "ocYxcuAEy30bX0NXmGn4ypqx3tI0",
    "ocYxcuBt0mRugKZ7tGAHPnUaOW7Y"
];
$tagUserDel = $wechat->user->tagUserDel($openid_list, $id);

Получение списка меток пользователя, параметр 1: openid

$userTag = $wechat->user->userTag($openid);


Установка заметки пользователя, параметры: openid, заметка

$userRemark = $wechat->user->userRemark($openid, $remark);


Получение базовой информации пользователя (механизм UnionID), параметры: openid, язык версии (zh_CN - китайский, zh_TW - тайваньский, en - английский, если не указано, то по умолчанию китайский)

$userBasicInfo = $wechat->user->userBasicInfo($openid, $language);


Получение списка подписчиков учетной записи WeChat, параметр 1: начальная позиция для выгрузки

$getUserList = $wechat->user->getUserList($next_openid);


Получение черного списка учетной записи WeChat

$getBlackList = $wechat->user->getBlackList();


Добавление пользователя в черный список, параметр 1: openid пользователя, максимум 20 за раз

$openid_list=[
    // список подписчиков
    "ocYxcuAEy30bX0NXmGn4ypqx3tI0",
    "ocYxcuBt0mRugKZ7tGAHPnUaOW7Y"
];
$setBlackList = $wechat->user->setBlackList($openid_list);

Отмена добавления в черный список, параметр 1: openid пользователя, который нужно добавить в черный список, одновременно можно добавить до 20 пользователей

$openid_list=[
    // список подписчиков
    "ocYxcuAEy30bX0NXmGn4ypqx3tI0",
    "ocYxcuBt0mRugKZ7tGAHPnUaOW7Y"
];
$delBlackList = $wechat->user->delBlackList($openid_list);

Продолжение следует

Комментарии ( 0 )

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

Введение

Пакет для разработки публичного аккаунта в WeChat на PHP Развернуть Свернуть
Apache-2.0
Отмена

Обновления

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

Участники

все

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

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