Update readme and SECURITY.md

parent d5b93073
...@@ -6,6 +6,7 @@ Exclamation symbols (:exclamation:) note something of importance e.g. breaking c ...@@ -6,6 +6,7 @@ Exclamation symbols (:exclamation:) note something of importance e.g. breaking c
## [Unreleased] ## [Unreleased]
### Added ### Added
### Changed ### Changed
- Touched up readme including header and badges.
### Deprecated ### Deprecated
### Removed ### Removed
- Abstract methods from `InputMedia` interface, as method annotations didn't work for propagation. - Abstract methods from `InputMedia` interface, as method annotations didn't work for propagation.
......
<img src="assets/logo/512px/logo_plain.png" title="PHP Telegram Bot" alt="PHP Telegram Bot logo"> <h1 align="center">
PHP Telegram Bot<br>
<br>
<img src="assets/logo/512px/logo_plain.png" title="PHP Telegram Bot" alt="PHP Telegram Bot logo">
<br>
</h1>
# PHP Telegram Bot A Telegram Bot based on the official [Telegram Bot API]
A Telegram Bot based on the official [Telegram Bot API][Telegram-Bot-API] [![API Version](https://img.shields.io/badge/Bot%20API-4.3%20%28May%202019%29-32a2da.svg)](https://core.telegram.org/bots/api#may-31-2019)
[![Join the bot support group on Telegram](https://img.shields.io/badge/telegram-@PHP__Telegram__Bot__Support-64659d.svg)](https://telegram.me/PHP_Telegram_Bot_Support)
[![Join the bot support group on Telegram](https://img.shields.io/badge/telegram-@PHP__Telegram__Bot__Support-32a2da.svg)](https://telegram.me/PHP_Telegram_Bot_Support) [![Donate](https://img.shields.io/badge/%F0%9F%92%99-Donate%20%2F%20Support%20Us-blue.svg)](#donate)
[![Donate](https://img.shields.io/badge/%F0%9F%92%99-Donate-blue.svg)](#donate)
[![Build Status](https://travis-ci.org/php-telegram-bot/core.svg?branch=master)](https://travis-ci.org/php-telegram-bot/core) [![Build Status](https://travis-ci.org/php-telegram-bot/core.svg?branch=master)](https://travis-ci.org/php-telegram-bot/core)
[![Dependencies](https://tidelift.com/badges/github/php-telegram-bot/core)][Tidelift] [![Code Coverage](https://img.shields.io/scrutinizer/coverage/g/php-telegram-bot/core/master.svg?style=flat)](https://scrutinizer-ci.com/g/php-telegram-bot/core/?b=master)
[![Code Coverage](https://img.shields.io/scrutinizer/coverage/g/php-telegram-bot/core/master.svg?style=flat-square)](https://scrutinizer-ci.com/g/php-telegram-bot/core/?b=master) [![Code Quality](https://img.shields.io/scrutinizer/g/php-telegram-bot/core/master.svg?style=flat)](https://scrutinizer-ci.com/g/php-telegram-bot/core/?b=master)
[![Code Quality](https://img.shields.io/scrutinizer/g/php-telegram-bot/core/master.svg?style=flat-square)](https://scrutinizer-ci.com/g/php-telegram-bot/core/?b=master)
[![Latest Stable Version](https://img.shields.io/packagist/v/longman/telegram-bot.svg)](https://packagist.org/packages/longman/telegram-bot) [![Latest Stable Version](https://img.shields.io/packagist/v/longman/telegram-bot.svg)](https://packagist.org/packages/longman/telegram-bot)
[![Dependencies](https://tidelift.com/badges/github/php-telegram-bot/core?style=flat)][Tidelift]
[![Total Downloads](https://img.shields.io/packagist/dt/longman/telegram-bot.svg)](https://packagist.org/packages/longman/telegram-bot) [![Total Downloads](https://img.shields.io/packagist/dt/longman/telegram-bot.svg)](https://packagist.org/packages/longman/telegram-bot)
[![Downloads Month](https://img.shields.io/packagist/dm/longman/telegram-bot.svg)](https://packagist.org/packages/longman/telegram-bot) [![Downloads Month](https://img.shields.io/packagist/dm/longman/telegram-bot.svg)](https://packagist.org/packages/longman/telegram-bot)
[![Minimum PHP Version](http://img.shields.io/badge/php-%3E%3D5.6-8892BF.svg)](https://php.net/) [![Minimum PHP Version](http://img.shields.io/badge/php-%3E%3D5.6-8892BF.svg)](https://php.net/)
[![License](https://img.shields.io/packagist/l/longman/telegram-bot.svg)](https://github.com/php-telegram-bot/core/LICENSE) [![License](https://img.shields.io/packagist/l/longman/telegram-bot.svg)](https://github.com/php-telegram-bot/core/LICENSE)
![Telegram Bot API Logo](assets/logo/512px/logo_plain.png)
A Telegram Bot based on the official [Telegram Bot API][Telegram-Bot-API]
## Table of Contents ## Table of Contents
- [Introduction](#introduction) - [Introduction](#introduction)
- [Instructions](#instructions) - [Instructions](#instructions)
...@@ -65,61 +65,55 @@ A Telegram Bot based on the official [Telegram Bot API][Telegram-Bot-API] ...@@ -65,61 +65,55 @@ A Telegram Bot based on the official [Telegram Bot API][Telegram-Bot-API]
- [License](#license) - [License](#license)
- [Credits](#credits) - [Credits](#credits)
## Introduction ## Introduction
This is a pure PHP Telegram Bot, fully extensible via plugins. This is a pure PHP Telegram Bot, fully extensible via plugins.
Telegram recently announced official support for a [Bot
API](https://telegram.org/blog/bot-revolution) allowing integrators of Telegram announced official support for a [Bot API](https://telegram.org/blog/bot-revolution), allowing integrators of all sorts to bring automated interactions to the mobile platform.
all sorts to bring automated interactions to the mobile platform. This This Bot aims to provide a platform where one can simply write a bot and have interactions in a matter of minutes.
Bot aims to provide a platform where one can simply write a plugin
and have interactions in a matter of minutes.
The Bot can: The Bot can:
- retrieve updates with webhook and getUpdates methods. - Retrieve updates with [webhook][#webhook-installation] and [getUpdates][#getupdates-installation] methods.
- supports all types and methods according to Telegram API (25 May 2016). - Supports all types and methods according to Telegram API 4.3 (May 2019).
- supports supergroups. - Supports supergroups.
- handle commands in chat with other bots. - Handle commands in chat with other bots.
- manage Channel from the bot admin interface. - Manage Channel from the bot admin interface.
- full support for **inline bots**. - Full support for **inline bots**.
- inline keyboard. - Inline keyboard.
- Messages, InlineQuery and ChosenInlineQuery are stored in the Database. - Messages, InlineQuery and ChosenInlineQuery are stored in the Database.
- Conversation feature - Conversation feature.
----- ---
This code is available on
[Github](https://github.com/php-telegram-bot/core). Pull requests are welcome. This code is available on [GitHub](https://github.com/php-telegram-bot/core). Pull requests are welcome.
## Instructions ## Instructions
### Create your first bot ### Create your first bot
1. Message @botfather https://telegram.me/botfather with the following 1. Message [`@BotFather`](https://telegram.me/BotFather) with the following text: `/newbot`
text: `/newbot`
If you don't know how to message by username, click the search If you don't know how to message by username, click the search field on your Telegram app and type `@BotFather`, where you should be able to initiate a conversation. Be careful not to send it to the wrong contact, because some users have similar usernames to `BotFather`.
field on your Telegram app and type `@botfather`, where you should be able
to initiate a conversation. Be careful not to send it to the wrong
contact, because some users has similar usernames to `botfather`.
![botfather initial conversation](http://i.imgur.com/aI26ixR.png) ![BotFather initial conversation](https://user-images.githubusercontent.com/9423417/60736229-bc2aeb80-9f45-11e9-8d35-5b53145347bc.png)
2. @botfather replies with `Alright, a new bot. How are we going to 2. `@BotFather` replies with:
call it? Please choose a name for your bot.`
```
Alright, a new bot. How are we going to call it? Please choose a name for your bot.
```
3. Type whatever name you want for your bot. 3. Type whatever name you want for your bot.
4. @botfather replies with ```Good. Now let's choose a username for your 4. `@BotFather` replies with:
bot. It must end in `bot`. Like this, for example: TetrisBot or
tetris_bot.```
5. Type whatever username you want for your bot, minimum 5 characters, ```
and must end with `bot`. For example: `telesample_bot` Good. Now let's choose a username for your bot. It must end in `bot`. Like this, for example: TetrisBot or tetris_bot.
```
6. @botfather replies with: 5. Type whatever username you want for your bot, minimum 5 characters, and must end with `bot`. For example: `telesample_bot`
6. `@BotFather` replies with:
``` ```
Done! Congratulations on your new bot. You will find it at Done! Congratulations on your new bot. You will find it at
...@@ -136,16 +130,22 @@ and must end with `bot`. For example: `telesample_bot` ...@@ -136,16 +130,22 @@ and must end with `bot`. For example: `telesample_bot`
7. Note down the 'token' mentioned above. 7. Note down the 'token' mentioned above.
8. Type `/setprivacy` to @botfather. *Optionally set the bot privacy:*
1. Send `/setprivacy` to `@BotFather`.
![botfather later conversation](http://i.imgur.com/tWDVvh4.png) ![BotFather later conversation](https://user-images.githubusercontent.com/9423417/60736340-26439080-9f46-11e9-970f-8f33bbe39c5f.png)
9. @botfather replies with `Choose a bot to change group messages settings.` 2. `@BotFather` replies with:
```
Choose a bot to change group messages settings.
```
10. Type (or select) `@telesample_bot` (change to the username you set at step 5 3. Type (or select) `@telesample_bot` (change to the username you set at step 5
above, but start it with `@`) above, but start it with `@`)
11. @botfather replies with 4. `@BotFather` replies with:
``` ```
'Enable' - your bot will only receive messages that either start with the '/' symbol or mention the bot by username. 'Enable' - your bot will only receive messages that either start with the '/' symbol or mention the bot by username.
...@@ -153,14 +153,17 @@ above, but start it with `@`) ...@@ -153,14 +153,17 @@ above, but start it with `@`)
Current status is: ENABLED Current status is: ENABLED
``` ```
12. Type (or select) `Disable` to let your bot receive all messages sent to a 5. Type (or select) `Disable` to let your bot receive all messages sent to a group.
group. This step is up to you actually.
13. @botfather replies with `Success! The new status is: DISABLED. /help` 6. `@BotFather` replies with:
```
Success! The new status is: DISABLED. /help
```
### Require this package with Composer ### Require this package with Composer
Install this package through [Composer][composer]. Install this package through [Composer].
Edit your project's `composer.json` file to require `longman/telegram-bot`. Edit your project's `composer.json` file to require `longman/telegram-bot`.
Create *composer.json* file Create *composer.json* file
...@@ -196,7 +199,7 @@ The bot can handle updates with [**Webhook**](#webhook-installation) or [**getUp ...@@ -196,7 +199,7 @@ The bot can handle updates with [**Webhook**](#webhook-installation) or [**getUp
## Webhook installation ## Webhook installation
Note: For a more detailed explanation, head over to the [example-bot repository][example-bot-repository] and follow the instructions there. Note: For a more detailed explanation, head over to the [example-bot repository] and follow the instructions there.
In order to set a [Webhook][api-setwebhook] you need a server with HTTPS and composer support. In order to set a [Webhook][api-setwebhook] you need a server with HTTPS and composer support.
(For a [self signed certificate](#self-signed-certificate) you need to add some extra code) (For a [self signed certificate](#self-signed-certificate) you need to add some extra code)
...@@ -563,13 +566,13 @@ $telegram->setUploadPath('/your/path/Upload'); ...@@ -563,13 +566,13 @@ $telegram->setUploadPath('/your/path/Upload');
## Documentation ## Documentation
Take a look at the repo [Wiki][wiki] for further information and tutorials! Take a look at the repo [Wiki] for further information and tutorials!
Feel free to improve! Feel free to improve!
## Example bot ## Example bot
We're busy working on a full A-Z example bot, to help get you started with this library and to show you how to use all its features. We're busy working on a full A-Z example bot, to help get you started with this library and to show you how to use all its features.
You can check the progress of the [example bot repository][example-bot-repository]). You can check the progress of the [example-bot repository]).
## Projects with this library ## Projects with this library
...@@ -580,8 +583,7 @@ Here's a list of projects that feats this library, feel free to add yours! ...@@ -580,8 +583,7 @@ Here's a list of projects that feats this library, feel free to add yours!
## Troubleshooting ## Troubleshooting
If you like living on the edge, please report any bugs you find on the If you like living on the edge, please report any bugs you find on the [PHP Telegram Bot issues][issues] page.
[PHP Telegram Bot issues][issues] page.
## Contributing ## Contributing
...@@ -591,10 +593,6 @@ See [CONTRIBUTING](CONTRIBUTING.md) for more information. ...@@ -591,10 +593,6 @@ See [CONTRIBUTING](CONTRIBUTING.md) for more information.
See [SECURITY](SECURITY.md) for more information. See [SECURITY](SECURITY.md) for more information.
## Security
See [SECURITY](SECURITY.md) for more information.
## Donate ## Donate
All work on this bot consists of many hours of coding during our free time, to provide you with a Telegram Bot library that is easy to use and extend. All work on this bot consists of many hours of coding during our free time, to provide you with a Telegram Bot library that is easy to use and extend.
...@@ -615,16 +613,27 @@ Thank you for keeping this project alive :pray: ...@@ -615,16 +613,27 @@ Thank you for keeping this project alive :pray:
## License ## License
Please see the [LICENSE](LICENSE) included in this repository for a full copy of the MIT license, Please see the [LICENSE](LICENSE) included in this repository for a full copy of the MIT license, which this project is licensed under.
which this project is licensed under.
## Credits ## Credits
Credit list in [CREDITS](CREDITS) Credit list in [CREDITS](CREDITS)
[Telegram-Bot-API]: https://core.telegram.org/bots/api "Telegram Bot API" ---
[composer]: https://getcomposer.org/ "Composer"
[example-bot-repository]: https://github.com/php-telegram-bot/example-bot "Example Bot repository" <div align="center">
<b>
<a href="https://tidelift.com/subscription/pkg/packagist-longman-telegram-bot?utm_source=packagist-longman-telegram-bot&utm_medium=referral&utm_campaign=readme-footer">Get professional support for this package with a Tidelift subscription</a>
</b>
<br>
<sub>
Tidelift helps make open source sustainable for maintainers while giving companies<br>assurances about security, maintenance, and licensing for their dependencies.
</sub>
</div>
[Telegram Bot API]: https://core.telegram.org/bots/api "Telegram Bot API"
[Composer]: https://getcomposer.org/ "Composer"
[example-bot repository]: https://github.com/php-telegram-bot/example-bot "Example Bot repository"
[api-setwebhook]: https://core.telegram.org/bots/api#setwebhook "Webhook on Telegram Bot API" [api-setwebhook]: https://core.telegram.org/bots/api#setwebhook "Webhook on Telegram Bot API"
[set.php]: https://github.com/php-telegram-bot/example-bot/blob/master/set.php "example set.php" [set.php]: https://github.com/php-telegram-bot/example-bot/blob/master/set.php "example set.php"
[unset.php]: https://github.com/php-telegram-bot/example-bot/blob/master/unset.php "example unset.php" [unset.php]: https://github.com/php-telegram-bot/example-bot/blob/master/unset.php "example unset.php"
...@@ -637,7 +646,7 @@ Credit list in [CREDITS](CREDITS) ...@@ -637,7 +646,7 @@ Credit list in [CREDITS](CREDITS)
[HelpCommand.php]: https://github.com/php-telegram-bot/example-bot/blob/master/Commands/HelpCommand.php "example /help command" [HelpCommand.php]: https://github.com/php-telegram-bot/example-bot/blob/master/Commands/HelpCommand.php "example /help command"
[SendtochannelCommand.php]: https://github.com/php-telegram-bot/core/blob/master/src/Commands/AdminCommands/SendtochannelCommand.php "/sendtochannel admin command" [SendtochannelCommand.php]: https://github.com/php-telegram-bot/core/blob/master/src/Commands/AdminCommands/SendtochannelCommand.php "/sendtochannel admin command"
[DB::selectChats]: https://github.com/php-telegram-bot/core/blob/0.46.0/src/DB.php#L1000 "DB::selectChats() parameters" [DB::selectChats]: https://github.com/php-telegram-bot/core/blob/0.46.0/src/DB.php#L1000 "DB::selectChats() parameters"
[wiki]: https://github.com/php-telegram-bot/core/wiki "PHP Telegram Bot Wiki" [Wiki]: https://github.com/php-telegram-bot/core/wiki "PHP Telegram Bot Wiki"
[wiki-create-your-own-commands]: https://github.com/php-telegram-bot/core/wiki/Create-your-own-commands "Create your own commands" [wiki-create-your-own-commands]: https://github.com/php-telegram-bot/core/wiki/Create-your-own-commands "Create your own commands"
[issues]: https://github.com/php-telegram-bot/core/issues "PHP Telegram Bot Issues" [issues]: https://github.com/php-telegram-bot/core/issues "PHP Telegram Bot Issues"
......
# Security # Security Policy
To report a security vulnerability, please use the [Tidelift security contact](https://tidelift.com/security). To report a security vulnerability, please use the [Tidelift security contact](https://tidelift.com/security). Tidelift will coordinate the fix and disclosure.
Tidelift will then coordinate the fix and disclosure.
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment