Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
TelegramBot
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Kulya
TelegramBot
Commits
1954213e
Commit
1954213e
authored
Feb 11, 2016
by
Armando Lüscher
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Revise README file and correct code snippets.
Prettify example code files.
parent
f11c153c
Changes
5
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
258 additions
and
200 deletions
+258
-200
README.md
README.md
+179
-122
getUpdatesCLI.php
examples/getUpdatesCLI.php
+32
-33
hook.php
examples/hook.php
+30
-30
set.php
examples/set.php
+11
-9
unset.php
examples/unset.php
+6
-6
No files found.
README.md
View file @
1954213e
...
...
@@ -12,29 +12,36 @@
A Telegram Bot based on the official
[
Telegram Bot API
](
https://core.telegram.org/bots/api
)
### Introduction
This is a pure php Telegram Bot, fully extensible via plugins.
## Introduction
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
all sorts to bring automated interactions to the mobile platform. This
Bot aims to provide a platform where one c
ould
simply write a plugin
Bot aims to provide a platform where one c
an
simply write a plugin
and have interactions in a matter of minutes.
The Bot can:
-
retri
ve update
with webhook and getUpdate methods.
-
retri
eve updates
with webhook and getUpdate methods.
-
supports all types and methods according to Telegram API (20 January 2016).
-
supports supergroups.
-
handle commands in chat with other bots.
-
manage Channel from the bot admin interface
-
Full support for
**inline bots**
(
**new!**
)
-
Messages, InlineQuery and ChosenInlineQuery are stored in the Database (
**new!**
)
-
manage Channel from the bot admin interface.
-
full support for
**inline bots**
. (
**new!**
)
-
Messages, InlineQuery and ChosenInlineQuery are stored in the Database. (
**new!**
)
-----
This code is available on
[
Github
](
https://github.com/akalongman/php-telegram-bot
)
. Pull requests are welcome.
## Instructions
### Create your first bot
1.
Message @botfather https://telegram.me/botfather with the following
text:
`/newbot`
If you don't know how to message by username, click the search
field on your Telegram app and type
`@botfather`
, you should be able
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`
.
...
...
@@ -45,25 +52,27 @@ call it? Please choose a name 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
`
``
Good. Now let's choose a username for your
bot. It must end in `bot`. Like this, for example: TetrisBot or
tetris_bot.`
tetris_bot.`
``
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
telegram.me/telesample_bot. You can now add a description, about
section and profile picture for your bot, see /help for a list of
commands.
telegram.me/telesample_bot. You can now add a description, about
section and profile picture for your bot, see /help for a list of
commands.
Use this token to access the HTTP API:
<b>123456789:AAG90e14-0f8-40183D-18491dDE</b>
123456789:AAG90e14-0f8-40183D-18491dDE
For a description of the Bot API, see this page:
https://core.telegram.org/bots/api
https://core.telegram.org/bots/api
```
7.
Note down the 'token' mentioned above.
...
...
@@ -73,28 +82,29 @@ https://core.telegram.org/bots/api
9.
@botfather replies with
`Choose a bot to change group messages settings.`
10.
Type
`@telesample_bot`
(change to the username you set at step 5
10.
Type
(or select)
`@telesample_bot`
(change to the username you set at step 5
above, but start it with
`@`
)
11.
@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.
'Disable' - your bot will receive all messages that people send to groups.
Current status is: ENABLED
```
12.
Type
`Disable`
to let your bot receive all messages sent to a
group. This step is up to you actually.
13.
@botfather replies with
`Success! The new status is: DISABLED. /help`
### Require this package with Composer
Install this package through
[
Composer
](
https://getcomposer.org/
)
.
Edit your project's
`composer.json`
file to require
`longman/telegram-bot`
.
Create
*composer.json*
file
:
Create
*composer.json*
file
```
js
{
"
name
"
:
"
yourproject/yourproject
"
,
...
...
@@ -105,40 +115,47 @@ Create *composer.json* file:
}
}
```
And run composer update
and run
`composer update`
**Or**
run a command in your command line:
**or**
run this command in your command line:
```
composer require longman/telegram-bot
```
### Choose how to retrieve Telegram updates
The bot can handle updates with
**webhook**
or
**getUpdate**
method:
| | Webhook | getUpdate |
| ---- | :----: | :----: |
| Description | Telegram send
the update directy to your host | You have to fetch Telegram updates
|
| Description | Telegram send
s the updates directly to your host | You have to fetch Telegram updates manually
|
| Host with https | Required | Not required |
| Mysql | Not required | Required |
| MySQL | Not required | Required |
## Webhook installation
You need server with https and composer support.
You must set a
[
WebHook
](
https://core.telegram.org/bots/api#setwebhook
)
.
In order to set a
[
Webhook
](
https://core.telegram.org/bots/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)
Create
*set.php*
(just copy and edit
*examples/set.php*
) and put into it:
```
php
<?php
//
Composer Load
er
$loader
=
require
__DIR__
.
'/vendor/autoload.php'
;
//
Load compos
er
require
__DIR__
.
'/vendor/autoload.php'
;
$API_KEY
=
'your_bot_api_key'
;
$BOT_NAME
=
'namebot'
;
$
link
=
'https://yourdomain/yourpath_to_
hook.php'
;
$
hook_url
=
'https://yourdomain/path/to/
hook.php'
;
try
{
//
c
reate Telegram API object
//
C
reate Telegram API object
$telegram
=
new
Longman\TelegramBot\Telegram
(
$API_KEY
,
$BOT_NAME
);
// set webhook
$result
=
$telegram
->
setWebHook
(
$link
);
// Set webhook
$result
=
$telegram
->
setWebHook
(
$hook_url
);
if
(
$result
->
isOk
())
{
echo
$result
->
getDescription
();
}
...
...
@@ -147,60 +164,71 @@ try {
}
```
And open your
*set.php*
via browser
.
Open your
*set.php*
via the browser to register the webhook with Telegram
.
After, create
*hook.php*
(or just copy and edit
*examples/hook.php*
) and pu
t:
Now, create
*hook.php*
(or just copy and edit
*examples/hook.php*
) and put into i
t:
```
php
<?php
$loader
=
require
__DIR__
.
'/vendor/autoload.php'
;
// Load composer
require
__DIR__
.
'/vendor/autoload.php'
;
$API_KEY
=
'your_bot_api_key'
;
$BOT_NAME
=
'namebot'
;
try
{
//
c
reate Telegram API object
//
C
reate Telegram API object
$telegram
=
new
Longman\TelegramBot\Telegram
(
$API_KEY
,
$BOT_NAME
);
//
h
andle telegram webhook request
//
H
andle telegram webhook request
$telegram
->
handle
();
}
catch
(
Longman\TelegramBot\Exception\TelegramException
$e
)
{
// Silence is golden!
// log telegram errors
// echo $e;
}
```
###Self Signed Certificate
To upload the certificate, add the certificate path as param in
*set.php*
:
### Self Signed Certificate
To upload the certificate, add the certificate path as a parameter in
*set.php*
:
```
php
$result
=
$telegram
->
setWebHook
(
$url
,
$certificate_path
);
$result
=
$telegram
->
setWebHook
(
$
hook_
url
,
$certificate_path
);
```
## getUpdate installation
You need the database Mysql active.
Create
*getUpdateCLI.php*
(just copy and edit
*examples/getUpdateCLI.php*
) and put into it:
The MySQL database must be active!
Create
*getUpdateCLI.php*
(or just copy and edit
*examples/getUpdateCLI.php*
) and put into it:
```
php
#!/usr/bin/env php
<?php
$loader
=
require
__DIR__
.
'/vendor/autoload.php'
;
require
__DIR__
.
'/vendor/autoload.php'
;
$API_KEY
=
'your_bot_api_key'
;
$BOT_NAME
=
'namebot'
;
$credentials
=
array
(
'host'
=>
'localhost'
,
'user'
=>
'dbuser'
,
'password'
=>
'dbpass'
,
'database'
=>
'dbname'
);
$mysql_credentials
=
[
'host'
=>
'localhost'
,
'user'
=>
'dbuser'
,
'password'
=>
'dbpass'
,
'database'
=>
'dbname'
,
];
try
{
//
c
reate Telegram API object
//
C
reate Telegram API object
$telegram
=
new
Longman\TelegramBot\Telegram
(
$API_KEY
,
$BOT_NAME
);
$telegram
->
enableMySQL
(
$credentials
);
// handle telegram getUpdate request
// Enable MySQL
$telegram
->
enableMySQL
(
$mysql_credentials
);
// Handle telegram getUpdate request
$telegram
->
handleGetUpdates
();
}
catch
(
Longman\TelegramBot\Exception\TelegramException
$e
)
{
// log telegram errors
echo
$e
;
echo
$e
;
}
```
give t
o the file the permission for execution
:
give t
he file permission to execute
:
```
chmod 775 getUpdateCLI.php
```
...
...
@@ -208,91 +236,117 @@ then run
```
./getUpdateCLI.php
```
### Types
All types implemented according to Telegram API (20 January 2016).
#### Inline Query
## Types
All types are implemented according to Telegram API (20 January 2016).
### Inline Query
Full support for inline query according to Telegram API (20 January 2016).
### Methods
All methods implemented according to Telegram API (20 January 2016).
####Send Message
Message longer than 4096 characters are splitted in more messages.
All methods are implemented according to Telegram API (20 January 2016).
#### Send Message
Messages longer than 4096 characters are split up into multiple messages.
```
php
$result
=
Request
::
sendMessage
([
'chat_id'
=>
$chat_id
,
'text'
=>
'Your utf8 text 😜 ...'
]);
```
####Send Photo
To send a local photo provide the file path as second param:
#### Send Photo
To send a local photo, provide the file path as the second parameter:
```
php
$data
[
'chat_id'
]
=
$chat_id
;
$result
=
Request
::
sendPhoto
(
$data
,
$this
->
telegram
->
getUploadPath
()
.
'/'
.
'
image.jpg'
);
$data
=
[
'chat_id'
=>
$chat_id
]
;
$result
=
Request
::
sendPhoto
(
$data
,
$telegram
->
getUploadPath
()
.
'/
image.jpg'
);
```
If you know the file_id of a previously uploaded file, just
provide it in the fist param
:
If you know the file_id of a previously uploaded file, just
include it in the data array
:
```
php
$data
[
'chat_id'
]
=
$chat_id
;
$data
[
'photo'
]
=
$file_id
;
$data
=
[
'chat_id'
=>
$chat_id
,
'photo'
=>
$file_id
,
];
$result
=
Request
::
sendPhoto
(
$data
);
```
*sendAudio*
,
*sendDocument*
,
*sendSticker*
,
*sendVideo*
and
*sendVoice*
works
in the same way.
*sendAudio*
,
*sendDocument*
,
*sendSticker*
,
*sendVideo*
and
*sendVoice*
all work
in the same way.
See
*ImageCommand.php*
for a full example.
####Send Chat Action
#### Send Chat Action
```
php
Request
::
sendChatAction
([
'chat_id'
=>
$chat_id
,
'action'
=>
'typing'
]);
```
####getUserProfilePhoto
Retrieve the user photo, see the
*WhoamiCommand.php*
for a full example.
####GetFile and dowloadFile
Get the file path and download it, see the
*WhoamiCommand.php*
for a full example.
#### getUserProfilePhoto
Retrieve the user photo, see
*WhoamiCommand.php*
for a full example.
#### getFile and dowloadFile
Get the file path and download it, see
*WhoamiCommand.php*
for a full example.
#### Send message to all active chats
To do this you have to enable the Mysql connection.
To do this you have to enable the MySQL connection.
Here's an example of use:
```
php
$results
=
$telegram
->
sendToActiveChats
(
'sendMessage'
,
//callback function to execute (see Request.php methods)
array
(
'text'
=>
'Hey! Checkout the new feature!!'
),
//Param to evaluate the request
true
,
//Send to chats (group chat)
true
,
//Send to users (single chat)
null
,
//'yyyy-mm-dd hh:mm:ss' date range from
null
//'yyyy-mm-dd hh:mm:ss' date range to
$results
=
Request
::
sendToActiveChats
(
'sendMessage'
,
// callback function to execute (see Request.php for available methods)
[
'text'
=>
'Hey! Check out the new features!!'
],
// Data to pass to the request
true
,
// Send to chats (group chat)
true
,
// Send to chats (super group chat)
true
,
// Send to users (single chat)
null
,
// 'yyyy-mm-dd hh:mm:ss' date range from
null
// 'yyyy-mm-dd hh:mm:ss' date range to
);
```
You can also broadcast message to users, from the private chat with your bot. Take a look at the admin interace below.
## Utilis
### MySQL storage (Recomended)
If you want insert in database messages/users/chats for further usage
in commands, create database and import
*structure.sql*
and enable
Mysql support after object creation and BEFORE handle method:
```
php
$credentials
=
[
'host'
=>
'localhost'
,
'user'
=>
'dbuser'
,
'password'
=>
'dbpass'
,
'database'
=>
'dbname'
];
You can also broadcast a message to users, from the private chat with your bot. Take a look at the admin interface below.
## Utils
$telegram
->
enableMySQL
(
$credentials
);
### MySQL storage (Recommended)
If you want to save messages/users/chats for further usage
in commands, create a new database, import
*structure.sql*
and enable
MySQL support after object creation and BEFORE handle method:
```
php
$mysql_credentials
=
[
'host'
=>
'localhost'
,
'user'
=>
'dbuser'
,
'password'
=>
'dbpass'
,
'database'
=>
'dbname'
,
];
$telegram
->
enableMySQL
(
$mysql_credentials
);
```
You can set a custom prefix to all the tables while you are enabling My
sql
:
You can set a custom prefix to all the tables while you are enabling My
SQL
:
```
php
$telegram
->
enableMySQL
(
$
credentials
,
$BOT_NAME
.
'_'
);
$telegram
->
enableMySQL
(
$
mysql_credentials
,
$BOT_NAME
.
'_'
);
```
Consider to use the
*utf8mb4*
branch if you find some special characters problems.
You can also store inline query and chosen inline query in the database.
### Channels Support
All methods implemented can be used to manage channels.
### Channels Support
All methods implemented can be used to manage channels.
With admin interface you can manage your channel directly with your bot private chat.
### Commands
The bot is able to recognise commands in chat with multiple bot (/command@mybot ).
The bot is able to recognise commands in a chat with multiple bots (/command@mybot).
It can execute command triggering a chat event. Here's the list:
-
New chat participant (
**NewchatparticipantCommand.php**
)
...
...
@@ -305,47 +359,49 @@ It can execute command triggering a chat event. Here's the list:
-
Inline query (
**InlinequeryCommand.php**
)
-
Chosen inline result (
**ChoseninlineresultCommand.php**
)
**GenericCommand.php**
let you handle commands that don't exist or to
**GenericCommand.php**
lets you handle commands that don't exist or to
use commands as a variable:
Favourite colour?
**/black, /red**
Favourite number?
**/1, /134**
**GenericmessageCommand.php**
let you handle any type of message.
**GenericmessageCommand.php**
let
s
you handle any type of message.
Maybe you would like to develop your own commands. A good practice is
to store them outside
*vendor/*
. This can be done
adding the method
:
to store them outside
*vendor/*
. This can be done
using
:
```
php
$
COMMANDS_FOLDER
=
__DIR__
.
'/Commands/'
;
$telegram
->
addCommandsPath
(
$
COMMANDS_FOLDER
);
$
commands_folder
=
__DIR__
.
'/Commands/'
;
$telegram
->
addCommandsPath
(
$
commands_folder
);
```
Inside
*examples/Commands/*
there are some sample that show how to use types.
Inside
*examples/Commands/*
there are some sample
s
that show how to use types.
#### Commands Configuration
With this method you can set some command specified parameters, for
With this method you can set some command specific parameters, for
example, google geocode/timezone api key for date command:
```
php
$telegram
->
setCommandConfig
(
'date'
,
[
'google_api_key'
=>
'your_google_api_key_here'
]);
```
### Admin Commands
Enabling this feature, the admin bot can perform some super user command like:
-
Send message to all chats
*/sendtoall*
-
List all the chats started with the bot
*/chats*
-
Send a message to a channel
*/sendtochannel*
(NEW! see below how to configure it)
You can specify one or more admin with this option:
You can specify one or more admin
s
with this option:
```
php
$telegram
->
enableAdmins
([
'your_telegram_user_id'
,
'Others
id'
]);
$telegram
->
enableAdmins
([
'your_telegram_user_id'
,
'other_telegram_user_
id'
]);
```
Telegram user id can be retrieved with the command
**/whoami**
.
Admin commands are stored in
*src/Admin/*
folder.
To know all the commands avaiable type
**/help**
.
To get a list of all available commands, type
**/help**
.
#### Channel Administration
#### Channel Administration
To enable this feature follow those steps:
To enable this feature follow those steps:
-
Add your bot as channel administrator, this can be done with any telegram client.
-
Enable admin interface for your user as explained in the admin section above.
-
Enter your channel name as a param for the sendtoall command:
...
...
@@ -355,40 +411,42 @@ To enable this feature follow those steps:
-
Enjoy!
### Upload and Download directory path
You can overwrite the default Upload and Download directory with:
You can override the default Upload and Download directory with:
```
php
$telegram
->
setDownloadPath
(
"yourpath/Download"
);
$telegram
->
setUploadPath
(
"yourpath../Upload"
);
$telegram
->
setDownloadPath
(
'yourpath/Download'
);
$telegram
->
setUploadPath
(
'yourpath/Upload'
);
```
###Unset Webhook
Edit
*example/unset.php*
with your credential and execute it.
### Unset Webhook
Edit
*example/unset.php*
with your bot credentials and execute it.
### Logging
Thrown Exception are stored in
*TelegramException.log*
file (in the base directory).
Incoming update (json string from webhook and getUpdates) can be logged on a text file, set those options with the methods:
Thrown Exceptions are stored in
*TelegramException.log*
file (in the base directory).
Incoming update (json string from webhook and getUpdates) can be logged in a text file. Set those options with the methods:
```
php
$telegram
->
setLogRequests
(
true
);
$telegram
->
setLogPath
(
$BOT_NAME
.
'.log'
);
$telegram
->
setLogPath
(
$BOT_NAME
.
'.log'
);
```
Set verbosity to 3
, to log also
curl requests and responses from the bot to Telegram:
Set verbosity to 3
to also log
curl requests and responses from the bot to Telegram:
```
php
$telegram
->
setLogRequests
(
true
);
$telegram
->
setLogPath
(
$BOT_NAME
.
'.log'
);
$telegram
->
setLogPath
(
$BOT_NAME
.
'.log'
);
$telegram
->
setLogVerbosity
(
3
);
```
-----
This code is available on
[
Github
](
https://github.com/akalongman/php-telegram-bot
)
. Pull requests are welcome.
## Documentation
##Documentation
Take a look at the repo
[
Wiki
](
https://github.com/akalongman/php-telegram-bot/wiki
)
for further information and tutorial!
Feel free to improve!
##Project with this library
## Projects with this library
Here's a list of projects that feats this library, feel free to add yours!
-
[
Super-Dice-Roll
](
https://github.com/RafaelDelboni/Super-Dice-Roll
)
[
@superdiceroll_bot
]
(https://telegram.me/superdiceroll_bot)
...
...
@@ -399,14 +457,13 @@ If you like living on the edge, please report any bugs you find on the
## Contributing
See
[
CONTRIBUTING
.md
](
CONTRIBUTING.md
)
for
information.
See
[
CONTRIBUTING
](
CONTRIBUTING.md
)
for more
information.
## License
Please see the
[
LICENSE
](
LICENSE.md
)
included in this repository for a full copy of the MIT license,
which this project is licensed under.
## Credits
Credit list in
[
CREDITS
](
CREDITS
)
examples/getUpdatesCLI.php
View file @
1954213e
...
...
@@ -2,66 +2,65 @@
<?php
//README
//This configuration file is intented to run the bot with the webhook method
//Uncommented parameters must be filled
//Uncommented parameters must be filled
#bash script
#while true; do ./getUpdatesCLI.php; done
//Composer Loader
$dir
=
realpath
(
__DIR__
.
'/..'
);
$loader
=
require
$dir
.
'/vendor/autoload.php'
;
// Load composer
require
__DIR__
.
'/vendor/autoload.php'
;
$API_KEY
=
'your_bot_api_key'
;
$BOT_NAME
=
'namebot'
;
//$
COMMANDS_FOLDER = __DIR__.
'/Commands/';
$credentials
=
[
'host'
=>
'localhost'
,
'user'
=>
'dbuser'
,
'password'
=>
'dbpass'
,
'database'
=>
'dbname'
//$
commands_path = __DIR__ .
'/Commands/';
$
mysql_
credentials
=
[
'host'
=>
'localhost'
,
'user'
=>
'dbuser'
,
'password'
=>
'dbpass'
,
'database'
=>
'dbname'
,
];
try
{
//
c
reate Telegram API object
//
C
reate Telegram API object
$telegram
=
new
Longman\TelegramBot\Telegram
(
$API_KEY
,
$BOT_NAME
);
////Options
$telegram
->
enableMySQL
(
$credentials
);
////Enable mysql with table prefix
//$telegram->enableMySQL($credentials, $BOT_NAME.'_');
// Enable MySQL
$telegram
->
enableMySQL
(
$mysql_credentials
);
//$telegram->addCommandsPath($COMMANDS_FOLDER);
//// Enable MySQL with table prefix
//$telegram->enableMySQL($mysql_credentials, $BOT_NAME . '_');
////Here you can enable admin interface ache the channel you want to manage
//// Add an additional commands path
//$telegram->addCommandsPath($commands_path);
//// Here you can enable admin interface for the channel you want to manage
//$telegram->enableAdmins(['your_telegram_id']);
//$telegram->setCommandConfig('sendtochannel', ['your_channel'
=>
'@type_here_your_channel']);
//$telegram->setCommandConfig('sendtochannel', ['your_channel'
=>
'@type_here_your_channel']);
////
Here you can set some command specified
parameters,
////for example, google geocode/timezone api key for date command:
//$telegram->setCommandConfig('date',
array('google_api_key'=>'your_google_api_key_here')
);
////
Here you can set some command specific
parameters,
////
for example, google geocode/timezone api key for date command:
//$telegram->setCommandConfig('date',
['google_api_key' => 'your_google_api_key_here']
);
////Logging
////
Logging
//$telegram->setLogRequests(true);
//$telegram->setLogPath($BOT_NAME
.
'.log');
//$telegram->setLogPath($BOT_NAME
.
'.log');
//$telegram->setLogVerbosity(3);
//$telegram->setDownloadPath("../Download");
//$telegram->setUploadPath("../Upload");
//// Set custom Upload and Download path
//$telegram->setDownloadPath('../Download');
//$telegram->setUploadPath('../Upload');
//
h
andle telegram getUpdate request
//
H
andle telegram getUpdate request
$ServerResponse
=
$telegram
->
handleGetUpdates
();
if
(
$ServerResponse
->
isOk
())
{
$n_update
=
count
(
$ServerResponse
->
getResult
());
print
(
date
(
'Y-m-d H:i:s'
,
time
())
.
' - Processed '
.
$n_update
.
" updates
\n
"
);
print
(
date
(
'Y-m-d H:i:s'
,
time
())
.
' - Processed '
.
$n_update
.
' updates'
.
"
\n
"
);
}
else
{
print
(
date
(
'Y-m-d H:i:s'
,
time
())
.
" - Fail fetch updates
\n
"
);
echo
$ServerResponse
->
printError
()
.
"
\n
"
;
print
(
date
(
'Y-m-d H:i:s'
,
time
())
.
' - Failed to fetch updates'
.
"
\n
"
);
echo
$ServerResponse
->
printError
()
.
"
\n
"
;
}
}
catch
(
Longman\TelegramBot\Exception\TelegramException
$e
)
{
// log telegram errors
echo
$e
;
echo
$e
;
}
examples/hook.php
View file @
1954213e
<?php
//README
//This configuration file is inten
t
ed to run the bot with the webhook method.
//Uncommented parameters must be filled
//This configuration file is inten
d
ed to run the bot with the webhook method.
//Uncommented parameters must be filled
//Please notice that if you open this file with your browser you'll get the "Input is empty!" Exception.
//This is a normal behaviour because this address has to be reached only by Telegram server
//Composer Loader
$dir
=
realpath
(
__DIR__
.
'/..'
);
$loader
=
require
$dir
.
'/vendor/autoload.php'
;
// Load composer
require
__DIR__
.
'/vendor/autoload.php'
;
$API_KEY
=
'your_bot_api_key'
;
$BOT_NAME
=
'namebot'
;
//$
COMMANDS_FOLDER = __DIR__.
'/Commands/';
//$credentials = [
// 'host'
=>
'localhost',
// 'user'
=>
'dbuser',
// 'password'
=>
'dbpass',
// 'database'
=>'dbname'
//$
commands_path = __DIR__ .
'/Commands/';
//$
mysql_
credentials = [
// 'host'
=>
'localhost',
// 'user'
=>
'dbuser',
// 'password'
=>
'dbpass',
// 'database'
=> 'dbname',
//];
try
{
//
c
reate Telegram API object
//
C
reate Telegram API object
$telegram
=
new
Longman\TelegramBot\Telegram
(
$API_KEY
,
$BOT_NAME
);
////Options
$telegram
->
enableMySQL
(
$credentials
);
////Enable mysql with table prefix
//$telegram->enableMySQL($credentials, $BOT_NAME.'_');
//// Enable MySQL
//$telegram->enableMySQL($mysql_credentials);
//$telegram->addCommandsPath($COMMANDS_FOLDER);
//// Enable MySQL with table prefix
//$telegram->enableMySQL($mysql_credentials, $BOT_NAME . '_');
////Here you can enable admin interface ache the channel you want to manage
//// Add an additional commands path
//$telegram->addCommandsPath($commands_path);
//// Here you can enable admin interface for the channel you want to manage
//$telegram->enableAdmins(['your_telegram_id']);
//$telegram->setCommandConfig('sendtochannel', ['your_channel'
=>
'@type_here_your_channel']);
//$telegram->setCommandConfig('sendtochannel', ['your_channel'
=>
'@type_here_your_channel']);
////
Here you can set some command specified
parameters,
////for example, google geocode/timezone api key for date command:
//$telegram->setCommandConfig('date',
array('google_api_key'=>'your_google_api_key_here')
);
////
Here you can set some command specific
parameters,
////
for example, google geocode/timezone api key for date command:
//$telegram->setCommandConfig('date',
['google_api_key' => 'your_google_api_key_here']
);
////Logging
////
Logging
//$telegram->setLogRequests(true);
//$telegram->setLogPath($BOT_NAME
.
'.log');
//$telegram->setLogPath($BOT_NAME
.
'.log');
//$telegram->setLogVerbosity(3);
//$telegram->setDownloadPath("../Download");
//$telegram->setUploadPath("../Upload");
//// Set custom Upload and Download path
//$telegram->setDownloadPath('../Download');
//$telegram->setUploadPath('../Upload');
//
h
andle telegram webhook request
//
H
andle telegram webhook request
$telegram
->
handle
();
}
catch
(
Longman\TelegramBot\Exception\TelegramException
$e
)
{
//
Silence is gold
!
//
Silence is golden
!
// log telegram errors
// echo $e;
}
examples/set.php
View file @
1954213e
<?php
//Composer Loader
$dir
=
realpath
(
__DIR__
.
'/..'
);
$loader
=
require
$dir
.
'/vendor/autoload.php'
;
// Load composer
require
__DIR__
.
'/vendor/autoload.php'
;
$API_KEY
=
'your_bot_api_key'
;
$BOT_NAME
=
'namebot'
;
$
link
=
'https://yourdomain/yourpath_to_
hook.php'
;
$
hook_url
=
'https://yourdomain/path/to/
hook.php'
;
try
{
//
c
reate Telegram API object
//
C
reate Telegram API object
$telegram
=
new
Longman\TelegramBot\Telegram
(
$API_KEY
,
$BOT_NAME
);
// set webhook
$result
=
$telegram
->
setWebHook
(
$link
);
//Uncomment to use certificate
//$result = $telegram->setWebHook($link, $path_certificate);
// Set webhook
$result
=
$telegram
->
setWebHook
(
$hook_url
);
// Uncomment to use certificate
//$result = $telegram->setWebHook($hook_url, $path_certificate);
if
(
$result
->
isOk
())
{
echo
$result
->
getDescription
();
}
...
...
examples/unset.php
View file @
1954213e
<?php
//
Composer Load
er
$loader
=
require
__DIR__
.
'/vendor/autoload.php'
;
//
Load compos
er
require
__DIR__
.
'/vendor/autoload.php'
;
$API_KEY
=
'your_bot_api_key'
;
$BOT_NAME
=
'namebot'
;
try
{
//
c
reate Telegram API object
//
C
reate Telegram API object
$telegram
=
new
Longman\TelegramBot\Telegram
(
$API_KEY
,
$BOT_NAME
);
// set webhook
// Unset webhook
$result
=
$telegram
->
unsetWebHook
();
//Uncomment to use certificate
//$result = $telegram->setWebHook($link, $path_certificate);
if
(
$result
->
isOk
())
{
echo
$result
->
getDescription
();
}
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment