tg-bot-api/bot-api-base
最新稳定版本:1.8.0
Composer 安装命令:
composer require tg-bot-api/bot-api-base
包简介
Clear and simple Telegram bot API
关键字:
README 文档
README
Supported Telegram Bot API 5.0 (November 4, 2020)
Installation
Via Composer
composer require tg-bot-api/bot-api-base --prefer-dist
Usage
We support all psr17 and psr18 implementations, but we will use guzzle6 for example
composer require php-http/guzzle6-adapter http-interop/http-factory-guzzle --prefer-dist
$botKey = '<bot key>'; $requestFactory = new Http\Factory\Guzzle\RequestFactory(); $streamFactory = new Http\Factory\Guzzle\StreamFactory(); $client = new Http\Adapter\Guzzle6\Client(); $apiClient = new \TgBotApi\BotApiBase\ApiClient($requestFactory, $streamFactory, $client); $bot = new \TgBotApi\BotApiBase\BotApi($botKey, $apiClient, new \TgBotApi\BotApiBase\BotApiNormalizer()); $userId = '<user id>'; $bot->send(\TgBotApi\BotApiBase\Method\SendMessageMethod::create($userId, 'Hi'));
You can configure it to work in symfony, for example, in this way.
If you want to use your own api server - you can set url as 4th param in bot api
$bot = new \TgBotApi\BotApiBase\BotApi('<bot key>', $apiClient, new \TgBotApi\BotApiBase\BotApiNormalizer(), '<your-domain>');
Allowed methods:
| Method | Allowed type | response |
|---|---|---|
add | AddStickerToSetMethod | bool |
answer | AnswerCallbackQueryMethod, AnswerInlineQueryMethod, AnswerPreCheckoutQueryMethod, AnswerShippingQueryMethod | bool |
create | CreateNewStickerSetMethod | bool |
delete | DeleteChatPhotoMethod, DeleteChatStickerSetMethod, DeleteMessageMethod, DeleteStickerFromSetMethod, DeleteWebhookMethod | bool |
edit | EditMessageCaptionMethod, EditMessageLiveLocationMethod, EditMessageMediaMethod, EditMessageReplyMarkupMethod, EditMessageTextMethod | bool |
forward | ForwardMessageMethod | MessageType |
kick | KickChatMemberMethod | bool |
leave | LeaveChatMethod | bool |
pin | PinChatMessageMethod | bool |
promote | PromoteChatMemberMethod | bool |
restrict | RestrictChatMemberMethod | bool |
send | SendPhotoMethod, SendAudioMethod, SendDocumentMethod, SendVideoMethod, SendAnimationMethod, SendVoiceMethod, SendVideoNoteMethod, SendGameMethod, SendInvoiceMethod, SendLocationMethod, SendVenueMethod, SendContactMethod, SendStickerMethod, SendMessageMethod, SendPollMethod, SendDiceMethod | MessageType |
set | SetChatDescriptionMethod, SetChatPhotoMethod, SetChatStickerSetMethod, SetChatTitleMethod, SetGameScoreMethod, SetStickerPositionInSetMethod, SetWebhookMethod, SetPassportDataErrorsMethod, SetChatPermissionsMethod, SetChatAdministratorCustomTitleMethod, SetMyCommandMethod, SetStickerSetThumbMethod | bool |
stop | StopMessageLiveLocationMethod | bool |
stopPoll | StopPollMethod | Poll |
unban | UnbanChatMemberMethod | bool |
unpin | UnpinChatMessageMethod, UnpinAllChatMessagesMethod | bool |
upload | UploadStickerFileMethod | FileType |
exportChatInviteLink | ExportChatInviteLinkMethod | string |
sendChatAction | SendChatActionMethod | bool |
getUpdates | GetUpdatesMethod | UpdateType[] |
getMe | GetMeMethod | UserType |
getMyCommands | GetMyCommandsMethod | BotCommandType |
getUserProfilePhotos | GetUserProfilePhotosMethod | UserProfilePhotosType |
getWebhookInfo | GetWebhookInfoMethod | WebhookInfoType |
getChatMembersCount | GetChatMembersCountMethod | int |
getChat | GetChatMethod | ChatType |
getChatAdministrators | GetChatAdministratorsMethod | ChatMemberType[] |
getChatMember | GetChatMemberMethod | ChatMemberType |
getChatMenuButton | GetChatMenuButtonMethod | MenuButtonType |
getGameHighScores | GetGameHighScoresMethod | GameHighScoreType[] |
getStickerSet | GetStickerSetMethod | StickerSetType |
getFile | GetFileMethod | FileType |
sendMediaGroup | SendMediaGroupMethod | MessageType[] |
getAbsoluteFilePath | FileType | string |
logOut | LogOutMethod | bool |
close | CloseMethod | bool |
copyMessage | CopyMessageMethod | MessageIdType |
call($method, [string $type]) | any method class, [optional expected type] | array or excepted type object |
Implemented all methods and types referenced by official Api
You can use BotApiComplete instance as helper to call all methods from official Api like this:
$botKey = '<bot key>'; $requestFactory = new Http\Factory\Guzzle\RequestFactory() $streamFactory = new Http\Factory\Guzzle\StreamFactory(); $client = new Http\Adapter\Guzzle6\Client(); $apiClient = new \TgBotApi\BotApiBase\ApiClient($requestFactory, $streamFactory, $client); $bot = new \TgBotApi\BotApiBase\BotApiComplete($botKey, $apiClient, new \TgBotApi\BotApiBase\BotApi\BotApiNormalizer()); $userId = '<user id>'; $bot->sendMessage(\TgBotApi\BotApiBase\Method\SendMessageMethod::create($userId, 'Hi'));
Fetching webhooks
Method fetch() of WebhookFetcher handling Psr\Http\Message\RequestInterface or string and always returns instance of UpdateType or throwing BadRequestException.
$fetcher = new \TgBotApi\BotApiBase\WebhookFetcher(new \TgBotApi\BotApiBase\BotApiNormalizer()); $update = $fetcher->fetch($request);
Change log
Please see CHANGELOG for more information on what has changed recently.
Testing
$ composer test Contributing
Please see CONTRIBUTING and CODE_OF_CONDUCT for details.
Security
If you discover any security related issues, please email wformps@gmail.com instead of using the issue tracker.
Credits
License
The MIT License (MIT). Please see License File for more information.
统计信息
- 总下载量: 74.95k
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 223
- 点击次数: 1
- 依赖项目数: 2
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2026-01-04