igusev/ viber-bot-php-fixed
PHP 机器人接口,用于与 Viber API 交互
0.0.13
2019-09-16 11:55 UTC
Requires
- php: >=5.5.0
- guzzlehttp/guzzle: ^6.2
Requires (Dev)
- monolog/monolog: ^1.22
- phpunit/phpunit: ^4.8
README
用于开发 Viber 平台机器人的库。 按步骤创建您的第一个 Viber 机器人,查看演示 viber://pa?chatURI=viber-bot-php&context=github.com
安装
composer require bogdaan/viber-bot-php
示例
<?php require_once("../vendor/autoload.php"); use Viber\Bot; use Viber\Api\Sender; $apiKey = '<PLACE-YOU-API-KEY-HERE>'; // reply name $botSender = new Sender([ 'name' => 'Whois bot', 'avatar' => 'https://developers.viber.com/img/favicon.ico', ]); try { $bot = new Bot(['token' => $apiKey]); $bot ->onConversation(function ($event) use ($bot, $botSender) { // this event fires if user open chat, you can return "welcome message" // to user, but you can't send more messages! return (new \Viber\Api\Message\Text()) ->setSender($botSender) ->setText("Can i help you?"); }) ->onText('|whois .*|si', function ($event) use ($bot, $botSender) { // match by template, for example "whois Bogdaan" $bot->getClient()->sendMessage( (new \Viber\Api\Message\Text()) ->setSender($botSender) ->setReceiver($event->getSender()->getId()) ->setText("I do not know )") ); }) ->run(); } catch (Exception $e) { // todo - log exceptions }
在 examples 目录中查看更多。
库结构
.
├── Api
│ ├── Entity.php
│ ├── Event # all remote events ("callbacks")
│ │ ├── Conversation.php # fires when user open 1v1 chat
│ │ ├── Delivered.php # fires when message delivered (for each device)
│ │ ├── Factory.php # Event factory
│ │ ├── Failed.php # fires when delivery failed (for each device)
│ │ ├── Message.php # fires when user send message
│ │ ├── Seen.php # fires when user read message (for each device)
│ │ ├── Subscribed.php # fires when user subscribe to PA
│ │ ├── Type.php # available types
│ │ └── Unsubscribed.php # fires when user unsubscribed
│ ├── Event.php # base class for all events
│ ├── Exception #
│ │ └── ApiException.php # remote or logic error
│ ├── Keyboard #
│ │ └── Button.php # all types of buttons here
│ ├── Keyboard.php # button container
│ ├── Message #
│ │ ├── CarouselContent.php #
│ │ ├── Contact.php #
│ │ ├── Factory.php #
│ │ ├── File.php #
│ │ ├── Location.php #
│ │ ├── Picture.php #
│ │ ├── Sticker.php #
│ │ ├── Text.php #
│ │ ├── Type.php # available message types
│ │ ├── Url.php #
│ │ └── Video.php #
│ ├── Message.php # base class for all messages
│ ├── Response.php # wrap api response
│ ├── Sender.php # represent bot-sender
│ ├── Signature.php # signature helper (verify or create sign)
│ ├── User #
│ │ └── State.php # user state (online/offline etc)
│ └── User.php # viber user
├── Bot #
│ └── Manager.php # manage bot closures
├── Bot.php # bot class
└── Client.php # api client
了解更多
功能
- 所有 API 实体
- 验证请求和响应签名
- 提供 webhook 接口
- 提供事件接口
- 包装所有 API 响应为实体
- 在提交前验证 API 实体?
- 使用 monolog 实现日志级别?
- 在公开页面上发布
贡献
欢迎 Pull 请求。