PHP SDK для Wiracle.ru API
composer require justcommunication-ru/wiracle-api-php-sdk
$client = new WiracleClient('email', 'token');
email
— email пользователя на wiracle.ru
token
— аутентификационный токен.
Токен можно получить через web-интерфейс https://wiracle.ru/account/settings/api, либо методом WiracleClient::getToken($email, $password)
$token = WiracleClient::getToken($email, $password);
print_r($token);
Так же токен авторизации можно получить через web-интерфейс https://wiracle.ru/account/settings/api
$account = $client->getAccount();
print_r($account);
$response = $client->sendChannelsRequest(new ChannelsRequest($profile_id));
print_r($response->getChannels());
Каналы всех профилей на страницу которых можно добавлять сообщения (включая собственные)
$response = $client->sendChannelsAvailableRequest(new ChannelsAvailableRequest($profile_id));
print_r($response->getProfiles());
$response = $client->sendMessageCreateRequest(MessageCreateRequest::withPlainText($profile_id, $channel_id, $text));
// идентификатор нового сообщения
print_r($response->getId());
// $width, $height не обязательные поля
$response = $client->sendMessageCreateRequest(MessageCreateRequest::withImage($profile_id, $channel_id, $src, $width, $height));
// идентификатор нового сообщения
print_r($response->getId());
$message = new Message([
new HeaderPart('Header'),
new TextPart('Text')
]);
$message
->addPart(new ImagePart('https://wiracle.ru/images/app_banner/512x512.png', 512, 512))
->addPart(new CutlinePart())
->addPart(new TextPart('Text 2'))
;
$response = $client->sendMessageCreateRequest(MessageCreateRequest::withMessage($profile_id, $channel_id, $message));
// идентификатор нового сообщения
print_r($response->getId());
Сообщения поддерживают inline markdown такие как: bold text, italic text, link и тд.
При ошибке будет сгенерировано исключение WiracleAPIException
try {
$client->sendMessageCreateRequest(MessageCreateRequest::withPlainText($profile_id, $channel_id, $text));
} catch (WiracleAPIException $e) {
$logger->error('Wiracle ERROR: ' . $e->getMessage());
}
$client = new WiracleClient('email', 'token', [
'proxy' => 'tcp://localhost:8125',
'timeout' => 6,
'connect_timeout' => 4
]);
Список доступных параметров: https://docs.guzzlephp.org/en/stable/request-options.html
Настройте своего http клиента:
// Http клиент с логгированием всех запросов
$stack = HandlerStack::create();
$stack->push(Middleware::log($logger, new MessageFormatter(MessageFormatter::DEBUG)));
$httpClient = new \GuzzleHttp\Client([
'handler' => $stack,
'timeout' => 6
]);
и передайте его аргументом конструктора:
$client = new WiracleClient('email', 'token', $httpClient);
либо сеттером:
$client = new WiracleClient('email', 'token');
$client->setHttpClient($httpClient);
В $client
можно передать свой Psr\Logger
.
$client->setLogger($someLogger);
По-умолчанию, логирование отключено.
Запустить тесты можно командой:
vendor/bin/phpunit