Git Product home page Git Product logo

telegram-bot-manager's Introduction

PHP Telegram Bot Manager

Join the bot support group on Telegram Donate

Scrutinizer Code Quality Codecov Tests Status

Latest Stable Version Dependencies Total Downloads License

This project builds on top of PHP Telegram Bot and as such, depends on it!

The main purpose of this mini-library is to make the interaction between your webserver and Telegram easier. I strongly suggest your read the PHP Telegram Bot instructions first, to understand what this library does exactly.

Installation and usage is pretty straight forward:

Require this package with Composer

composer require php-telegram-bot/telegram-bot-manager:^2.1

NOTE: This will automatically also install PHP Telegram Bot into your project (if it isn't already).

Advanced: Due to the fact that the core library is not a stable version yet, this project is partly locked to the core version, to ensure reliable functioning.

It is possible however, to override the core version that this library requires:

"require": {
    "php-telegram-bot/telegram-bot-manager": "^2.1",
    "longman/telegram-bot": "dev-master as 0.81"
}

This example will pull the master version of the core library, making it appear to be version 0.81, which then satisfies the requirement.

Performing actions

What use would this library be if you couldn't perform any actions?!

There are a few parameters available to get things rolling:

Parameter Description
s secret: This is a special secret value defined in the main manager.php file.
This parameter is required to call the script via browser!
a action: The actual action to perform. (handle (default), webhookinfo, cron, set, unset, reset)
handle executes the getUpdates method; webhookinfo to get result from getWebhookInfo, cron executes cron commands; set / unset / reset the webhook.
l loop: Number of seconds to loop the script for (used for getUpdates method).
This would be used mainly via CLI, to continually get updates for a certain period.
i interval: Number of seconds to wait between getUpdates requests (used for getUpdates method, default is 2).
This would be used mainly via CLI, to continually get updates for a certain period, every i seconds.
g group: Commands group for cron (only used together with cron action, default group is default).
Define which group of commands to execute via cron. Can be a comma separated list of groups.

via browser

Simply point your browser to the manager.php file with the necessary GET parameters:

  • http://example.com/manager.php?s=<secret>&a=<action>&l=<loop>&i=<interval>

Webhook

Set, unset and reset the webhook:

  • http://example.com/manager.php?s=super_secret&a=set
  • http://example.com/manager.php?s=super_secret&a=unset
  • http://example.com/manager.php?s=super_secret&a=reset (unset & set combined)

getUpdates

Handle updates once:

  • http://example.com/manager.php?s=super_secret&a=handle or simply
  • http://example.com/manager.php?s=super_secret (handle action is the default)

Handle updates for 30 seconds, fetching every 5 seconds:

  • http://example.com/manager.php?s=super_secret&l=30&i=5

cron

Execute commands via cron:

  • http://example.com/manager.php?s=super_secret&a=cron&g=maintenance or multiple groups
  • http://example.com/manager.php?s=super_secret&a=cron&g=maintenance,cleanup

via CLI

When using CLI, the secret is not necessary (since it could just be read from the file itself).

Call the manager.php file directly using php and pass the parameters:

  • $ php manager.php a=<action> l=<loop> i=<interval>

Webhook

Set, unset and reset the webhook:

  • $ php manager.php a=set
  • $ php manager.php a=unset
  • $ php manager.php a=reset (unset & set combined)

getUpdates

Handle updates once:

  • $ php manager.php a=handle or simply
  • $ php manager.php (handle action is the default)

Handle updates for 30 seconds, fetching every 5 seconds:

  • $ php manager.php l=30 i=5

cron

Execute commands via cron:

  • $ php manager.php a=cron g=maintenance or multiple groups
  • $ php manager.php a=cron g=maintenance,cleanup

Create the manager PHP file

You can name this file whatever you like, it just has to be somewhere inside your PHP project (preferably in the root folder to make things easier). (Let's assume our file is called manager.php)

Let's start off with a simple example that uses the webhook method:

<?php

use TelegramBot\TelegramBotManager\BotManager;

// Load composer.
require_once __DIR__ . '/vendor/autoload.php';

try {
    $bot = new BotManager([
        // Vitals!
        'api_key'      => '12345:my_api_key',

        // Extras.
        'bot_username' => 'my_own_bot',
        'secret'       => 'super_secret',
        'webhook'      => [
            'url' => 'https://example.com/manager.php',
        ]
    ]);
    $bot->run();
} catch (\Exception $e) {
    echo $e->getMessage() . PHP_EOL;
}

Set vital bot parameters

The only vital parameter is the API key:

$bot = new BotManager([
    // (string) Bot API key provided by @BotFather.
    'api_key' => '12345:my_api_key',
    ...
]);

Set extra bot parameters

Apart from the necessary API key, the bot can be easily configured using extra parameters.

Set the webhook? Enable admins? Add custom command paths?

All no problem!

The secret is a user-defined key that is required to execute any of the library's features via webhook. Best make it long, random and very unique!

For 84 random characters:

  • If you have pwgen installed, just execute pwgen 84 1 and copy the output.
  • If you have openssl installed, use openssl rand -hex 84.
  • Or just go here and put all the output onto a single line.

(You get 2 guesses why 84 is a good number ๐Ÿ˜‰)

Below is a complete list of all available extra parameters.

$bot = new BotManager([
    ...
    // (string) Bot username that was defined when creating the bot.
    'bot_username'     => 'my_own_bot',

    // (string) A secret password required to authorise access to the webhook.
    'secret'           => 'super_secret',

    // (array) All options that have to do with the webhook.
    'webhook'          => [
        // (string) URL to the manager PHP file used for setting up the webhook.
        'url'             => 'https://example.com/manager.php',
        // (string) Path to a self-signed certificate (if necessary).
        'certificate'     => __DIR__ . '/server.crt',
        // (int) Maximum allowed simultaneous HTTPS connections to the webhook.
        'max_connections' => 20,
        // (array) List the types of updates you want your bot to receive.
        'allowed_updates' => ['message', 'edited_channel_post', 'callback_query'],
        // (string) Secret token to validate webhook requests.
        'secret_token'    => 'super_secret_token',
    ],

    // (bool) Only allow webhook access from valid Telegram API IPs.
    'validate_request' => true,
    // (array) When using `validate_request`, also allow these IPs.
    'valid_ips'        => [
        '1.2.3.4',         // single
        '192.168.1.0/24',  // CIDR
        '10/8',            // CIDR (short)
        '5.6.*',           // wildcard
        '1.1.1.1-2.2.2.2', // range
    ],

    // (array) All options that have to do with the limiter.
    'limiter'          => [
        // (bool) Enable or disable the limiter functionality.
        'enabled' => true,
        // (array) Any extra options to pass to the limiter.
        'options' => [
            // (float) Interval between request handles.
            'interval' => 0.5,
        ],
    ],

    // (array) An array of user ids that have admin access to your bot (must be integers).
    'admins'           => [12345],

    // (array) Mysql credentials to connect a database (necessary for [`getUpdates`](#using-getupdates-method) method!).
    'mysql'            => [
        'host'         => '127.0.0.1',
        'port'         => 3306,           // optional
        'user'         => 'root',
        'password'     => 'root',
        'database'     => 'telegram_bot',
        'table_prefix' => 'tbl_prfx_',    // optional
        'encoding'     => 'utf8mb4',      // optional
    ],

    // (array) List of configurable paths.
    'paths'            => [
        // (string) Custom download path.
        'download' => __DIR__ . '/Download',
        // (string) Custom upload path.
        'upload'   => __DIR__ . '/Upload',
    ],

    // (array) All options that have to do with commands.
    'commands'         => [
        // (array) A list of custom commands paths.
        'paths'   => [
            __DIR__ . '/CustomCommands',
        ],
        // (array) A list of all custom command configs.
        'configs' => [
            'sendtochannel' => ['your_channel' => '@my_channel'],
            'weather'       => ['owm_api_key' => 'owm_api_key_12345'],
        ],
    ],

    // (array) All options that have to do with cron.
    'cron'             => [
        // (array) List of groups that contain the commands to execute.
        'groups' => [
            // Each group has a name and array of commands.
            // When no group is defined, the default group gets executed.
            'default'     => [
                '/default_cron_command',
            ],
            'maintenance' => [
                '/db_cleanup',
                '/db_repair',
                '/message_admins Maintenance completed',
            ],
        ],
    ],

    // (string) Override the custom input of your bot (mostly for testing purposes!).
    'custom_input'     => '{"some":"raw", "json":"update"}',
]);

Using getUpdates method

Using the getUpdates method must not have a webhook parameter set and requires a MySQL database connection:

$bot = new BotManager([
    ...
    // Extras.
    'mysql' => [
        'host'         => '127.0.0.1',
        'port'         => 3306,           // optional
        'user'         => 'root',
        'password'     => 'root',
        'database'     => 'telegram_bot',
        'table_prefix' => 'tbl_prfx_',    // optional
        'encoding'     => 'utf8mb4',      // optional
    ],
]);

Now, the updates can be done either through the browser or via CLI.

Custom getUpdates output

A callback can be defined, to override the default output when updates are handled via getUpdates.

Example of the default output:

...
2017-07-10 14:59:25 - Updates processed: 1
123456: <text>
2017-07-10 14:59:27 - Updates processed: 0
2017-07-10 14:59:30 - Updates processed: 0
2017-07-10 14:59:32 - Updates processed: 0
2017-07-10 14:59:34 - Updates processed: 1
123456: <photo>
2017-07-10 14:59:36 - Updates processed: 0
...

Using custom callback that must return a string:

// In manager.php after $bot has been defined:
$bot->setCustomGetUpdatesCallback(function (ServerResponse $get_updates_response) {
    $results = array_filter((array) $get_updates_response->getResult());

    return sprintf('There are %d update(s)' . PHP_EOL, count($results));
});

output:

...
There are 0 update(s)
There are 0 update(s)
There are 2 update(s)
There are 1 update(s)
...

Development

When running live bot tests on a fork, you must enter the following environment variables to your repository settings:

API_KEY="12345:your_api_key"
BOT_USERNAME="username_of_your_bot"

It probably makes sense for you to create a new dummy bot for this.

Security

See SECURITY for more information.

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. If you enjoy using this library and would like to say thank you, donations are a great way to show your support.

Donations are invested back into the project ๐Ÿ‘

Thank you for keeping this project alive ๐Ÿ™


Get professional support for this package with a Tidelift subscription
Tidelift helps make open source sustainable for maintainers while giving companies
assurances about security, maintenance, and licensing for their dependencies.

telegram-bot-manager's People

Contributors

damianperez avatar hitmare avatar massadm avatar nasserghiasi avatar noplanman avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

telegram-bot-manager's Issues

run php manager.php ,but mywebhock can't recive any messages.

Bug Report

<--
โ— NEVER put your Telegram API key or any other private details here. (like passwords, user IDs, etc.)
Substitute them like <API_KEY> or <USER_ID> etc.
-->

Required Information

? !
Operating system centos 7.9.2009
PHP Telegram Bot Manager version 1.7.0
PHP Telegram Bot version 0.73.0
PHP version 7.4
MySQL version 5.7 / none
Update Method Webhook
Self-signed certificate no
RAW update (if available) {...}

Summary

Current behaviour

How to reproduce

run php manager.php ,but mywebhock can't recive any messages.

Expected behaviour

Schema is not created by default and provided structure is incomplete

Hello, when I try to install the php-telegram-bot/example-bot and try to run the example script with a MySQL database, I get a lot of "table or view not found" errors. Effectively, tables do not exist. I found this structure.sql file in your repo that should apparently create everything. However, more errors are raised:

PHP Warning:  PDOStatement::execute(): SQLSTATE[42S22]: Column not found: 1054 Unknown column 'id' in 'field list' in /home/bot/vendor/longman/telegram-bot/src/DB.php on 
line 224
PHP Warning:  PDOStatement::execute(): SQLSTATE[42S22]: Column not found: 1054 Unknown column 'id' in 'field list' in /home/bot/vendor/longman/telegram-bot/src/DB.php on 
line 224
PHP Warning:  PDOStatement::execute(): SQLSTATE[42S22]: Column not found: 1054 Unknown column 'id' in 'field list' in /home/bot/vendor/longman/telegram-bot/src/DB.php on 
line 372

Fatal error: Uncaught validateRequest()

Support Question

<--
โ— NEVER put your Telegram API key or any other private details here. (like passwords, user IDs, etc.)
Substitute them like <API_KEY> or <USER_ID> etc.
-->

Required Information

? !
Operating system Name and version
PHP Telegram Bot Manager version 2.0.0
PHP Telegram Bot version 0.77.1 as 0.73
PHP version 8.0
MySQL version x.y.z / none
Update Method Webhook
Self-signed certificate no
RAW update (if available) {...}

Summary

when i run
https://mydomain.com/manager.php?s=T4yy4B&?a=unset
i get this error
Fatal error: Uncaught TelegramBot\TelegramBotManager\Exception\InvalidAccessException: Invalid access in /membri/mybbpk/vendor/php-telegram-bot/telegram-bot-manager/src/BotManager.php:476 Stack trace: #0 /membri/mybbpk/vendor/php-telegram-bot/telegram-bot-manager/src/BotManager.php(90): TelegramBot\TelegramBotManager\BotManager->validateRequest() #1 /membri/mybbpk/manager.php(31): TelegramBot\TelegramBotManager\BotManager->run() #2 {main} thrown in /membri/mybbpk/vendor/php-telegram-bot/telegram-bot-manager/src/BotManager.php on line 476

add extra parameters in hook Url

Feature Request

add extra parameters in hook Url

Summary

You can't manage extra parameters in webhook beacouse the '?'.
$this->handleOutput(
$this->telegram->setWebhook(
$webhook['url'] . '?a=handle&s=' . $this->params->getBotParam('secret'),
$webhook_params
)->getDescription() . PHP_EOL
);

May be good that if webhook url has a parameter, then add a '&'
to do this:
manager.php?Myparam=123&a=handle&s=supersecret

How to setup this package in Laravel ?

I want to use this package and telegram bot on my laravel project. So how to setup the package so both the telegram bot and laravel project works well ?

? !
Operating system Name and version
PHP Telegram Bot Manager version 1.7
PHP Telegram Bot version 0.73.1
PHP version 8.1.7
MySQL version 5.3
Update Method Webhook
Self-signed certificate no
RAW update (if available) {...}
Laravel version 9.11

Summary

Composer error when installing the package

Bug Report

When I run composer require php-telegram-bot/telegram-bot-manager:^1.6 -W it returns this message:

Your requirements could not be resolved to an installable set of packages.

Problem 1
- php-telegram-bot/telegram-bot-manager 1.6.0 requires longman/telegram-bot ^0.70 -> found longman/telegram-bot[0.70.0, 0.70.1] but it conflicts with your root composer.json require (^0.77.1).
- php-telegram-bot/telegram-bot-manager 1.7.0 requires longman/telegram-bot ^0.73 -> found longman/telegram-bot[0.73.0, 0.73.1] but it conflicts with your root composer.json require (^0.77.1).
- Root composer.json requires php-telegram-bot/telegram-bot-manager ^1.6 -> satisfiable by php-telegram-bot/telegram-bot-manager[1.6.0, 1.7.0].

I'm using Laravel 8 and PHP 8.0

Custom valid IPs

Allow the user to add custom IPs from which the script can be executed.

This is necessary for calling the script with getUpdates method or Webhook method with custom input.

(this does not apply to CLI call)

Hello, may I ask why I set up the bot according to the demo, but I can't receive the channel news. Private chats and groups are normal

<?php

use TelegramBot\TelegramBotManager\BotManager;

// Load composer.
require_once __DIR__ . '/../vendor/autoload.php';

try {

    $bot = new BotManager([
        // Vitals!
        'api_key'      => '',

        // Extras.
        'bot_username' => '',
        'secret'       => '',
        'webhook'      => [
            'url' => '',
            // (string) Path to a self-signed certificate (if necessary).
            //'certificate'     => __DIR__ . '/server.crt',
            // (int) Maximum allowed simultaneous HTTPS connections to the webhook.
            'max_connections' => 20,
            // (array) List the types of updates you want your bot to receive.
            'allowed_updates' => ['message', 'edited_channel_post', 'callback_query'],
        ],
        // (bool) Only allow webhook access from valid Telegram API IPs.
        'validate_request' => true,
        // (array) When using `validate_request`, also allow these IPs.
        'valid_ips'        => [
            '1.2.3.4',         // single
            '192.168.1.0/24',  // CIDR
            '10/8',            // CIDR (short)
            '5.6.*',           // wildcard
            '1.1.1.1-2.2.2.2', // range
        ],
        // (array) All options that have to do with the limiter.
        'limiter'          => [
            // (bool) Enable or disable the limiter functionality.
            'enabled' => true,
            // (array) Any extra options to pass to the limiter.
            'options' => [
                // (float) Interval between request handles.
                'interval' => 0.5,
            ],
        ],

        // (array) An array of user ids that have admin access to your bot (must be integers).
        'admins'            => [
            
        ],

        // (array) Mysql credentials to connect a database (necessary for [`getUpdates`](#using-getupdates-method) method!).
        'mysql'            => [
            'host'         => '127.0.0.1',
            'port'         => 3306,           // optional
            'user'         => 'root',
            'password'     => 'root',
            'database'     => 'telegram_bot',
            'table_prefix' => 'tbl_prfx_',    // optional
            'encoding'     => 'utf8mb4',      // optional
        ],

        // (array) List of configurable paths.
        'paths'            => [
            // (string) Custom download path.
            'download' => __DIR__ . '/BotDownload',
            // (string) Custom upload path.
            'upload'   => __DIR__ . '/BotUpload',
        ],

        // (array) All options that have to do with commands.
        'commands'         => [
            // (array) A list of custom commands paths.
            'paths'   => [
                __DIR__ . '/../Commands',
            ],
            // (array) A list of all custom command configs.
            'configs' => [
                'sendtochannel' => ['your_channel' => '@'],
                //'weather'       => ['owm_api_key' => 'owm_api_key_12345'],
            ],
        ],

        // (array) All options that have to do with cron.
        /*'cron'             => [
            // (array) List of groups that contain the commands to execute.
            'groups' => [
                // Each group has a name and array of commands.
                // When no group is defined, the default group gets executed.
                'default'     => [
                    '/default_cron_command',
                ],
                'maintenance' => [
                    '/db_cleanup',
                    '/db_repair',
                    '/message_admins Maintenance completed',
                ],
            ],
        ],*/

        // (string) Override the custom input of your bot (mostly for testing purposes!).
        //'custom_input'     => '{"some":"raw", "json":"update"}',
    ]);
    $bot->run();
} catch (\Exception $e) {
    echo $e->getMessage() . PHP_EOL;
}

Error in BotManager.php line 65 unexpected '?'

Hi there,

i'm trying to user ure php telegram bot and i got this error code in my apache log file:

[Thu Feb 08 13:39:39.778757 2018] [:error] [pid 31072] [client 149.154.167.229:42151] PHP Parse error: syntax error, unexpected '?' in /vendor/php-telegram-bot/telegram-bot-manager/src/BotManager.php on line 65

I am using this PHP 7.0.27-0+deb9u1

This is the function what my apache/php is curious about (marked it with double **):

public function __construct(array $params)
{
    // Initialise logging before anything else, to allow errors to be logged.
    **$this->initLogging($params['logging'] ?? []);**

    $this->params = new Params($params);
    $this->action = new Action($this->params->getScriptParam('a'));

    // Set up a new Telegram instance.
    $this->telegram = new Telegram(
        $this->params->getBotParam('api_key'),
        $this->params->getBotParam('bot_username')
    );
} 

What can i do to avoid this error?

Thanks for your help in advance!

Feature request

  • Add getWebhookInfo result to GET/CLI parameters action #29
  • Categorize config array #13 (comment)
  • Botan options
  • Log rotator
  • Build-in log/exception reporter to admins ?

Update Message: deactivate sql write

Hi,
I have to remove update in sql Db only when i do editMessage command because the level of cpu is always over 80% and sometime it go down :/
Can you say me how to deactivate this feature? I have to edit Request file?

Thank you for your great work.

Andrea

Cannot disable MySQL dependency when using BotManager

Support Question

Using the instructions to disable MySQL dependency in manager.php via $bot->useGetUpdatesWithoutDatabase() is not working. This seems to be a setter method only working with the Longman PHP Telegram Bot Class. But such is initiated only when using Webhooks (e.g. in hooks.php).

How can I disable the MySQL dependency when using the Bot Manager / manager.php?

Required Information

PHP 7.4
Telegram Bot Manager 1.7

Summary

From the Telegram PHP Bot/core documentation:

getUpdates without database

If you choose to / or are obliged to use the getUpdates method without a database, you can replace the $telegram->useMySQL(...); line above with:

$telegram->useGetUpdatesWithoutDatabase();

Restrictive bot access

(From php-telegram-bot/core#527)

Would be cool to implement this as an ultimate firewall, before the bot code is even touched.
Although, it could also be cool to have it just after initialisation, so that rules could be configured via commands.

Hmmm.... ๐Ÿค”

@jacklul Ideas very welcome as always!

telegram_bot.ERROR: cURL error 28: Failed to connect to api.telegram.org port 443

Support Question

<--
โ— NEVER put your Telegram API key or any other private details here. (like passwords, user IDs, etc.)
Substitute them like <API_KEY> or <USER_ID> etc.
-->

Required Information

? !
Operating system Name and version
PHP Telegram Bot Manager version x.y.z
PHP Telegram Bot version x.y.z
PHP version x.y.z
MySQL version x.y.z / none
Update Method Webhook / getUpdates
Self-signed certificate yes / no
RAW update (if available) {...}

Summary

if i use manager package alwasy get this log and bot not running
telegram_bot.ERROR: cURL error 28: Failed to connect to api.telegram.org port 443: Connection timed out (see https://curl.haxx.se/libcurl/c/libcurl-errors.html) for https://api.telegram.org/botxxxxx:tokenbot/setWebhook []

any suggestion to fix this sir ?

Cron

Add ability to execute commands via cron.

@jacklul As I was implementing this, I thought I'd better open a discussion first ๐Ÿ˜Š

What do you think of this:

  • Add a new action called cron (php manager.php a=cron)
  • Add a new parameter called cron_commands

The parameter would be an array of commands, just like it's implemented in core now. So this would literally call $telegram->runCommands($cron_commands);

Do you see any other uses for cron at this moment?
Shall I opt for an array like this instead, to offer flexibility?

$params = [
    'cron' => [
        'commands' => [...],
    ],
];

PHP version 8.0.0 not supported

Bug Report

Required Information

? !
Operating system Android 10 (Using termux)
PHP Telegram Bot Manager version 1.5.0
PHP Telegram Bot version 0.64.0
PHP version 8.0.0
MySQL version none
Update Method none
Self-signed certificate none
RAW update (if available) {...}

Summary

Could not update the Telegram Bot Manager because it was expecting php version 7.1 instead of 8.0.0 (the newer version)

Current behaviour

This error occured when $composer update is executed.

Your requirements could not be resolved to an installable set of packages.

  Problem 1
    - php-telegram-bot/telegram-bot-manager[1.4.0, ..., 1.5.0] require php ^7.1 -> your php version (8.0.0) does not satisfy that requirement.
    - Root composer.json requires php-telegram-bot/telegram-bot-manager ^1.4 -> satisfiable by php-telegram-bot/telegram-bot-manager[1.4.0, 1.5.0].

How to reproduce

  1. Run $composer update
  2. Error occured.

Expected behaviour

PHP version 8.0.0 was expected to satisfy the requirement.

bot is not receiving any message!

Dear all
here is my config

<?php

/**
 * This file is part of the PHP Telegram Bot example-bot package.
 * https://github.com/php-telegram-bot/example-bot/
 *
 * (c) PHP Telegram Bot Team
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */

/**
 * This file contains all the configuration options for the PHP Telegram Bot.
 *
 * It is based on the configuration array of the PHP Telegram Bot Manager project.
 *
 * Simply adjust all the values that you need and extend where necessary.
 *
 * Options marked as [Manager Only] are only required if you use `manager.php`.
 *
 * For a full list of all options, check the Manager Readme:
 * https://github.com/php-telegram-bot/telegram-bot-manager#set-extra-bot-parameters
 */

return [
    // Add you bot's API key and name
    'api_key'      => '<API key>',
    'bot_username' => '<ID>', // Without "@"

    // [Manager Only] Secret key required to access the webhook
    'secret'       => '<myKey>',

    // When using the getUpdates method, this can be commented out
    'webhook'      => [
        'url' => 'https://mywebsite.net/bot/hook.php',
        // Use self-signed certificate
        // 'certificate'     => __DIR__ . '/path/to/your/certificate.crt',
        // Limit maximum number of connections
        // 'max_connections' => 5,
        'allowed_updates' => ['message', 'channel_post', 'callback_query'],
    ],
'validate_request' => false,
    // All command related configs go here
    'commands'     => [
        // Define all paths for your custom commands
        'paths'   => [
             __DIR__ . '/Commands',
        ],
        // Here you can set any command-specific parameters
        'configs' => [
            // - Google geocode/timezone API key for /date command (see DateCommand.php)
            // 'date'    => ['google_api_key' => 'your_google_api_key_here'],
            // - OpenWeatherMap.org API key for /weather command (see WeatherCommand.php)
            // 'weather' => ['owm_api_key' => 'your_owm_api_key_here'],
            // - Payment Provider Token for /payment command (see Payments/PaymentCommand.php)
            // 'payment' => ['payment_provider_token' => 'your_payment_provider_token_here'],
        ],
    ],

    // Define all IDs of admin users
    'admins'       => [
        // 123,
    ],

    // Enter your MySQL database credentials
     'mysql'        => [
         'host'     => '127.0.0.1',
         'user'     => 'user',
         'password' => 'password',
         'database' => 'db_name',
     ],

    // Logging (Debug, Error and Raw Updates)
     'logging'  => [
         'debug'  => __DIR__ . '/php-telegram-bot-debug.log',
         'error'  => __DIR__ . '/php-telegram-bot-error.log',
         'update' => __DIR__ . '/php-telegram-bot-update.log',
     ],

    // Set custom Upload and Download paths
    'paths'        => [
        'download' => __DIR__ . '/Download',
        'upload'   => __DIR__ . '/Upload',
    ],

    // Requests Limiter (tries to prevent reaching Telegram API limits)
    'limiter'      => [
        'enabled' => false,
    ],
];

I keep getting this message in ./php-telegram-bot-update.log

{"update_id":3999994764, "message":{"message_id":2,"from":{"id":99999,"is_bot":false,"first_name":"instaRanker","username":"instaRanker","language_code":"en"},"chat":{"id":99999,"first_name":"instaRanker","username":"instaRanker","type":"private"},"date":1636295694,"text":"/start","entities":[{"offset":0,"length":6,"type":"bot_command"}]}}
{"update_id":3999994764, "message":{"message_id":2,"from":{"id":99999,"is_bot":false,"first_name":"instaRanker","username":"instaRanker","language_code":"en"},"chat":{"id":99999,"first_name":"instaRanker","username":"instaRanker","type":"private"},"date":1636295694,"text":"/start","entities":[{"offset":0,"length":6,"type":"bot_command"}]}}
{"update_id":3999994764, "message":{"message_id":2,"from":{"id":99999,"is_bot":false,"first_name":"instaRanker","username":"instaRanker","language_code":"en"},"chat":{"id":99999,"first_name":"instaRanker","username":"instaRanker","type":"private"},"date":1636295694,"text":"/start","entities":[{"offset":0,"length":6,"type":"bot_command"}]}}
{"update_id":3999994764, "message":{"message_id":2,"from":{"id":99999,"is_bot":false,"first_name":"instaRanker","username":"instaRanker","language_code":"en"},"chat":{"id":99999,"first_name":"instaRanker","username":"instaRanker","type":"private"},"date":1636295694,"text":"/start","entities":[{"offset":0,"length":6,"type":"bot_command"}]}}
{"update_id":3999994764, "message":{"message_id":2,"from":{"id":99999,"is_bot":false,"first_name":"instaRanker","username":"instaRanker","language_code":"en"},"chat":{"id":99999,"first_name":"instaRanker","username":"instaRanker","type":"private"},"date":1636295694,"text":"/start","entities":[{"offset":0,"length":6,"type":"bot_command"}]}}

The Commands folder has this PHP TestCommand.php page

the content of the page

<?php

namespace Longman\TelegramBot\Commands\UserCommands;

use Longman\TelegramBot\Commands\UserCommand;
use Longman\TelegramBot\Request;

class TestCommand extends UserCommand
{
    protected $name = 'test';                      // Your command's name
    protected $description = 'A command for test'; // Your command description
    protected $usage = 'test';                    // Usage of your command
    protected $version = '1.0.0';                  // Version of your command

    public function execute()
    {
        $message = $this->getMessage();            // Get Message object

        $chat_id = $message->getChat()->getId();   // Get the current Chat ID

        $data = [                                  // Set up the new message data
            'chat_id' => $chat_id,                 // Set Chat ID to send the message to
            'text'    => 'This is just a Test...', // Set message to send
        ];

        return Request::sendMessage($data);        // Send message!
    }
}

It does not work when I type test in my bot.
I did not get any response to the telegram bot not even once!

What am doing wrong?

Linux 
PHP 7.4.24 (cli) (built: Oct  6 2021 10:23:44) ( NTS )
Copyright (c) The PHP Group
Zend Engine v3.4.0, Copyright (c) Zend Technologies

PHP Fatal error:

PHP 5.6.39-0+deb8u1 (cli) (built: Dec 16 2018 21:56:53)

MIB search path: /root/.snmp/mibs:/usr/share/snmp/mibs:/usr/share/snmp/mibs/iana:/usr/share/snmp/mibs/ietf:/usr/share/mibs/site:/usr/share/snmp/mibs:/usr/share/mibs/iana:/usr/share/mibs/ietf:/usr/share/mibs/netsnmp Cannot find module (SNMPv2-TC): At line 10 in /usr/share/snmp/mibs/UCD-DLMOD-MIB.txt Cannot find module (SNMPv2-SMI): At line 34 in /usr/share/snmp/mibs/UCD-SNMP-MIB.txt Cannot find module (SNMPv2-TC): At line 37 in /usr/share/snmp/mibs/UCD-SNMP-MIB.txt Did not find 'enterprises' in module #-1 (/usr/share/snmp/mibs/UCD-SNMP-MIB.txt) Did not find 'DisplayString' in module #-1 (/usr/share/snmp/mibs/UCD-SNMP-MIB.txt) Did not find 'TruthValue' in module #-1 (/usr/share/snmp/mibs/UCD-SNMP-MIB.txt) Unlinked OID in UCD-SNMP-MIB: ucdavis ::= { enterprises 2021 } Undefined identifier: enterprises near line 39 of /usr/share/snmp/mibs/UCD-SNMP-MIB.txt Did not find 'DisplayString' in module #-1 (/usr/share/snmp/mibs/UCD-DLMOD-MIB.txt) Did not find 'ucdExperimental' in module UCD-SNMP-MIB (/usr/share/snmp/mibs/UCD-DLMOD-MIB.txt) Unlinked OID in UCD-DLMOD-MIB: ucdDlmodMIB ::= { ucdExperimental 14 } Undefined identifier: ucdExperimental near line 13 of /usr/share/snmp/mibs/UCD-DLMOD-MIB.txt Cannot find module (MTA-MIB): At line 0 in (none) Cannot find module (NETWORK-SERVICES-MIB): At line 0 in (none) Cannot find module (SNMPv2-TC): At line 15 in /usr/share/snmp/mibs/UCD-DISKIO-MIB.txt Did not find 'DisplayString' in module #-1 (/usr/share/snmp/mibs/UCD-DISKIO-MIB.txt) Did not find 'ucdExperimental' in module UCD-SNMP-MIB (/usr/share/snmp/mibs/UCD-DISKIO-MIB.txt) Unlinked OID in UCD-DISKIO-MIB: ucdDiskIOMIB ::= { ucdExperimental 15 } Undefined identifier: ucdExperimental near line 19 of /usr/share/snmp/mibs/UCD-DISKIO-MIB.txt Cannot find module (SNMPv2-TC): At line 15 in /usr/share/snmp/mibs/LM-SENSORS-MIB.txt Did not find 'DisplayString' in module #-1 (/usr/share/snmp/mibs/LM-SENSORS-MIB.txt) Did not find 'ucdExperimental' in module UCD-SNMP-MIB (/usr/share/snmp/mibs/LM-SENSORS-MIB.txt) Unlinked OID in LM-SENSORS-MIB: lmSensors ::= { ucdExperimental 16 } Undefined identifier: ucdExperimental near line 32 of /usr/share/snmp/mibs/LM-SENSORS-MIB.txt Cannot find module (HOST-RESOURCES-MIB): At line 0 in (none) Cannot find module (HOST-RESOURCES-TYPES): At line 0 in (none) Cannot find module (SNMPv2-MIB): At line 0 in (none) Cannot find module (IF-MIB): At line 0 in (none) Cannot find module (IP-MIB): At line 0 in (none) Cannot find module (TCP-MIB): At line 0 in (none) Cannot find module (UDP-MIB): At line 0 in (none) Cannot find module (NOTIFICATION-LOG-MIB): At line 0 in (none) Cannot find module (DISMAN-EVENT-MIB): At line 0 in (none) Cannot find module (DISMAN-SCHEDULE-MIB): At line 0 in (none) Did not find 'ucdavis' in module UCD-SNMP-MIB (/usr/share/snmp/mibs/UCD-DEMO-MIB.txt) Unlinked OID in UCD-DEMO-MIB: ucdDemoMIB ::= { ucdavis 14 } Undefined identifier: ucdavis near line 7 of /usr/share/snmp/mibs/UCD-DEMO-MIB.txt Cannot find module (SNMP-TARGET-MIB): At line 0 in (none) Cannot find module (SNMP-FRAMEWORK-MIB): At line 9 in /usr/share/snmp/mibs/NET-SNMP-AGENT-MIB.txt Cannot find module (SNMPv2-SMI): At line 8 in /usr/share/snmp/mibs/NET-SNMP-MIB.txt Did not find 'enterprises' in module #-1 (/usr/share/snmp/mibs/NET-SNMP-MIB.txt) Unlinked OID in NET-SNMP-MIB: netSnmp ::= { enterprises 8072 } Undefined identifier: enterprises near line 10 of /usr/share/snmp/mibs/NET-SNMP-MIB.txt Cannot find module (SNMPv2-TC): At line 21 in /usr/share/snmp/mibs/NET-SNMP-AGENT-MIB.txt Did not find 'SnmpAdminString' in module #-1 (/usr/share/snmp/mibs/NET-SNMP-AGENT-MIB.txt) Did not find 'netSnmpObjects' in module NET-SNMP-MIB (/usr/share/snmp/mibs/NET-SNMP-AGENT-MIB.txt) Did not find 'netSnmpModuleIDs' in module NET-SNMP-MIB (/usr/share/snmp/mibs/NET-SNMP-AGENT-MIB.txt) Did not find 'netSnmpNotifications' in module NET-SNMP-MIB (/usr/share/snmp/mibs/NET-SNMP-AGENT-MIB.txt) Did not find 'netSnmpGroups' in module NET-SNMP-MIB (/usr/share/snmp/mibs/NET-SNMP-AGENT-MIB.txt) Did not find 'DisplayString' in module #-1 (/usr/share/snmp/mibs/NET-SNMP-AGENT-MIB.txt) Did not find 'RowStatus' in module #-1 (/usr/share/snmp/mibs/NET-SNMP-AGENT-MIB.txt) Did not find 'TruthValue' in module #-1 (/usr/share/snmp/mibs/NET-SNMP-AGENT-MIB.txt) Unlinked OID in NET-SNMP-AGENT-MIB: nsAgentNotifyGroup ::= { netSnmpGroups 9 } Undefined identifier: netSnmpGroups near line 545 of /usr/share/snmp/mibs/NET-SNMP-AGENT-MIB.txt Unlinked OID in NET-SNMP-AGENT-MIB: nsTransactionGroup ::= { netSnmpGroups 8 } Undefined identifier: netSnmpGroups near line 536 of /usr/share/snmp/mibs/NET-SNMP-AGENT-MIB.txt Unlinked OID in NET-SNMP-AGENT-MIB: nsConfigGroups ::= { netSnmpGroups 7 } Undefined identifier: netSnmpGroups near line 515 of /usr/share/snmp/mibs/NET-SNMP-AGENT-MIB.txt Unlinked OID in NET-SNMP-AGENT-MIB: nsCacheGroup ::= { netSnmpGroups 4 } Undefined identifier: netSnmpGroups near line 505 of /usr/share/snmp/mibs/NET-SNMP-AGENT-MIB.txt Unlinked OID in NET-SNMP-AGENT-MIB: nsModuleGroup ::= { netSnmpGroups 2 } Undefined identifier: netSnmpGroups near line 495 of /usr/share/snmp/mibs/NET-SNMP-AGENT-MIB.txt Unlinked OID in NET-SNMP-AGENT-MIB: netSnmpAgentMIB ::= { netSnmpModuleIDs 2 } Undefined identifier: netSnmpModuleIDs near line 24 of /usr/share/snmp/mibs/NET-SNMP-AGENT-MIB.txt Unlinked OID in NET-SNMP-AGENT-MIB: nsTransactions ::= { netSnmpObjects 8 } Undefined identifier: netSnmpObjects near line 55 of /usr/share/snmp/mibs/NET-SNMP-AGENT-MIB.txt Unlinked OID in NET-SNMP-AGENT-MIB: nsConfiguration ::= { netSnmpObjects 7 } Undefined identifier: netSnmpObjects near line 54 of /usr/share/snmp/mibs/NET-SNMP-AGENT-MIB.txt Unlinked OID in NET-SNMP-AGENT-MIB: nsErrorHistory ::= { netSnmpObjects 6 } Undefined identifier: netSnmpObjects near line 53 of /usr/share/snmp/mibs/NET-SNMP-AGENT-MIB.txt Unlinked OID in NET-SNMP-AGENT-MIB: nsCache ::= { netSnmpObjects 5 } Undefined identifier: netSnmpObjects near line 52 of /usr/share/snmp/mibs/NET-SNMP-AGENT-MIB.txt Unlinked OID in NET-SNMP-AGENT-MIB: nsDLMod ::= { netSnmpObjects 4 } Undefined identifier: netSnmpObjects near line 51 of /usr/share/snmp/mibs/NET-SNMP-AGENT-MIB.txt Unlinked OID in NET-SNMP-AGENT-MIB: nsExtensions ::= { netSnmpObjects 3 } Undefined identifier: netSnmpObjects near line 50 of /usr/share/snmp/mibs/NET-SNMP-AGENT-MIB.txt Unlinked OID in NET-SNMP-AGENT-MIB: nsMibRegistry ::= { netSnmpObjects 2 } Undefined identifier: netSnmpObjects near line 49 of /usr/share/snmp/mibs/NET-SNMP-AGENT-MIB.txt Unlinked OID in NET-SNMP-AGENT-MIB: nsVersion ::= { netSnmpObjects 1 } Undefined identifier: netSnmpObjects near line 48 of /usr/share/snmp/mibs/NET-SNMP-AGENT-MIB.txt Unlinked OID in NET-SNMP-AGENT-MIB: nsNotifyRestart ::= { netSnmpNotifications 3 } Undefined identifier: netSnmpNotifications near line 482 of /usr/share/snmp/mibs/NET-SNMP-AGENT-MIB.txt Unlinked OID in NET-SNMP-AGENT-MIB: nsNotifyShutdown ::= { netSnmpNotifications 2 } Undefined identifier: netSnmpNotifications near line 476 of /usr/share/snmp/mibs/NET-SNMP-AGENT-MIB.txt Unlinked OID in NET-SNMP-AGENT-MIB: nsNotifyStart ::= { netSnmpNotifications 1 } Undefined identifier: netSnmpNotifications near line 470 of /usr/share/snmp/mibs/NET-SNMP-AGENT-MIB.txt Cannot find module (SNMP-MPD-MIB): At line 0 in (none) Cannot find module (SNMP-USER-BASED-SM-MIB): At line 0 in (none) Cannot find module (SNMP-FRAMEWORK-MIB): At line 0 in (none) Cannot find module (SNMP-VIEW-BASED-ACM-MIB): At line 0 in (none) Cannot find module (SNMP-COMMUNITY-MIB): At line 0 in (none) Cannot find module (IPV6-ICMP-MIB): At line 0 in (none) Cannot find module (IPV6-MIB): At line 0 in (none) Cannot find module (IPV6-TCP-MIB): At line 0 in (none) Cannot find module (IPV6-UDP-MIB): At line 0 in (none) Cannot find module (IP-FORWARD-MIB): At line 0 in (none) Cannot find module (SNMP-FRAMEWORK-MIB): At line 10 in /usr/share/snmp/mibs/NET-SNMP-PASS-MIB.txt Cannot find module (SNMP-FRAMEWORK-MIB): At line 10 in /usr/share/snmp/mibs/NET-SNMP-EXAMPLES-MIB.txt Cannot find module (SNMPv2-TC): At line 12 in /usr/share/snmp/mibs/NET-SNMP-EXAMPLES-MIB.txt Cannot find module (INET-ADDRESS-MIB): At line 13 in /usr/share/snmp/mibs/NET-SNMP-EXAMPLES-MIB.txt Did not find 'SnmpAdminString' in module #-1 (/usr/share/snmp/mibs/NET-SNMP-EXAMPLES-MIB.txt) Did not find 'netSnmp' in module NET-SNMP-MIB (/usr/share/snmp/mibs/NET-SNMP-EXAMPLES-MIB.txt) Did not find 'RowStatus' in module #-1 (/usr/share/snmp/mibs/NET-SNMP-EXAMPLES-MIB.txt) Did not find 'StorageType' in module #-1 (/usr/share/snmp/mibs/NET-SNMP-EXAMPLES-MIB.txt) Did not find 'InetAddressType' in module #-1 (/usr/share/snmp/mibs/NET-SNMP-EXAMPLES-MIB.txt) Did not find 'InetAddress' in module #-1 (/usr/share/snmp/mibs/NET-SNMP-EXAMPLES-MIB.txt) Unlinked OID in NET-SNMP-EXAMPLES-MIB: netSnmpExamples ::= { netSnmp 2 } Undefined identifier: netSnmp near line 16 of /usr/share/snmp/mibs/NET-SNMP-EXAMPLES-MIB.txt Did not find 'SnmpAdminString' in module #-1 (/usr/share/snmp/mibs/NET-SNMP-PASS-MIB.txt) Did not find 'netSnmpExamples' in module NET-SNMP-EXAMPLES-MIB (/usr/share/snmp/mibs/NET-SNMP-PASS-MIB.txt) Unlinked OID in NET-SNMP-PASS-MIB: netSnmpPassExamples ::= { netSnmpExamples 255 } Undefined identifier: netSnmpExamples near line 14 of /usr/share/snmp/mibs/NET-SNMP-PASS-MIB.txt Cannot find module (SNMPv2-TC): At line 16 in /usr/share/snmp/mibs/NET-SNMP-EXTEND-MIB.txt Did not find 'nsExtensions' in module NET-SNMP-AGENT-MIB (/usr/share/snmp/mibs/NET-SNMP-EXTEND-MIB.txt) Did not find 'DisplayString' in module #-1 (/usr/share/snmp/mibs/NET-SNMP-EXTEND-MIB.txt) Did not find 'RowStatus' in module #-1 (/usr/share/snmp/mibs/NET-SNMP-EXTEND-MIB.txt) Did not find 'StorageType' in module #-1 (/usr/share/snmp/mibs/NET-SNMP-EXTEND-MIB.txt) Unlinked OID in NET-SNMP-EXTEND-MIB: nsExtendGroups ::= { nsExtensions 3 } Undefined identifier: nsExtensions near line 39 of /usr/share/snmp/mibs/NET-SNMP-EXTEND-MIB.txt Unlinked OID in NET-SNMP-EXTEND-MIB: nsExtendObjects ::= { nsExtensions 2 } Undefined identifier: nsExtensions near line 38 of /usr/share/snmp/mibs/NET-SNMP-EXTEND-MIB.txt Unlinked OID in NET-SNMP-EXTEND-MIB: netSnmpExtendMIB ::= { nsExtensions 1 } Undefined identifier: nsExtensions near line 19 of /usr/share/snmp/mibs/NET-SNMP-EXTEND-MIB.txt Cannot find module (SNMP-NOTIFICATION-MIB): At line 0 in (none) Cannot find module (SNMPv2-TM): At line 0 in (none) Cannot find module (SNMP-FRAMEWORK-MIB): At line 9 in /usr/share/snmp/mibs/NET-SNMP-VACM-MIB.txt Cannot find module (SNMP-VIEW-BASED-ACM-MIB): At line 16 in /usr/share/snmp/mibs/NET-SNMP-VACM-MIB.txt Cannot find module (SNMPv2-TC): At line 25 in /usr/share/snmp/mibs/NET-SNMP-VACM-MIB.txt Did not find 'SnmpAdminString' in module #-1 (/usr/share/snmp/mibs/NET-SNMP-VACM-MIB.txt) Did not find 'netSnmpObjects' in module NET-SNMP-MIB (/usr/share/snmp/mibs/NET-SNMP-VACM-MIB.txt) Did not find 'netSnmpGroups' in module NET-SNMP-MIB (/usr/share/snmp/mibs/NET-SNMP-VACM-MIB.txt) Did not find 'vacmGroupName' in module #-1 (/usr/share/snmp/mibs/NET-SNMP-VACM-MIB.txt) Did not find 'vacmAccessContextPrefix' in module #-1 (/usr/share/snmp/mibs/NET-SNMP-VACM-MIB.txt) Did not find 'vacmAccessSecurityModel' in module #-1 (/usr/share/snmp/mibs/NET-SNMP-VACM-MIB.txt) Did not find 'vacmAccessSecurityLevel' in module #-1 (/usr/share/snmp/mibs/NET-SNMP-VACM-MIB.txt) Did not find 'DisplayString' in module #-1 (/usr/share/snmp/mibs/NET-SNMP-VACM-MIB.txt) Did not find 'RowStatus' in module #-1 (/usr/share/snmp/mibs/NET-SNMP-VACM-MIB.txt) Did not find 'StorageType' in module #-1 (/usr/share/snmp/mibs/NET-SNMP-VACM-MIB.txt) Unlinked OID in NET-SNMP-VACM-MIB: netSnmpVacmMIB ::= { netSnmpObjects 9 } Undefined identifier: netSnmpObjects near line 28 of /usr/share/snmp/mibs/NET-SNMP-VACM-MIB.txt Cannot adopt OID in UCD-SNMP-MIB: logMatchRegExCompilation ::= { logMatchEntry 101 } Cannot adopt OID in UCD-SNMP-MIB: logMatchErrorFlag ::= { logMatchEntry 100 } Cannot adopt OID in UCD-SNMP-MIB: logMatchCycle ::= { logMatchEntry 11 } Cannot adopt OID in UCD-SNMP-MIB: logMatchCount ::= { logMatchEntry 10 } Cannot adopt OID in UCD-SNMP-MIB: logMatchCounter ::= { logMatchEntry 9 } Cannot adopt OID in UCD-SNMP-MIB: logMatchCurrentCount ::= { logMatchEntry 8 } Cannot adopt OID in UCD-SNMP-MIB: logMatchCurrentCounter ::= { logMatchEntry 7 } Cannot adopt OID in UCD-SNMP-MIB: logMatchGlobalCount ::= { logMatchEntry 6 } Cannot adopt OID in UCD-SNMP-MIB: logMatchGlobalCounter ::= { logMatchEntry 5 } Cannot adopt OID in UCD-SNMP-MIB: logMatchRegEx ::= { logMatchEntry 4 } Cannot adopt OID in UCD-SNMP-MIB: logMatchFilename ::= { logMatchEntry 3 } Cannot adopt OID in UCD-SNMP-MIB: logMatchName ::= { logMatchEntry 2 } Cannot adopt OID in UCD-SNMP-MIB: logMatchIndex ::= { logMatchEntry 1 } Cannot adopt OID in NET-SNMP-VACM-MIB: nsVacmAccessEntry ::= { nsVacmAccessTable 1 } Cannot adopt OID in UCD-SNMP-MIB: extErrFixCmd ::= { extEntry 103 } Cannot adopt OID in UCD-SNMP-MIB: extErrFix ::= { extEntry 102 } Cannot adopt OID in UCD-SNMP-MIB: extOutput ::= { extEntry 101 } Cannot adopt OID in UCD-SNMP-MIB: extResult ::= { extEntry 100 } Cannot adopt OID in UCD-SNMP-MIB: extCommand ::= { extEntry 3 } Cannot adopt OID in UCD-SNMP-MIB: extNames ::= { extEntry 2 } Cannot adopt OID in UCD-SNMP-MIB: extIndex ::= { extEntry 1 } Cannot adopt OID in UCD-DEMO-MIB: ucdDemoPublic ::= { ucdDemoMIBObjects 1 } Cannot adopt OID in UCD-DLMOD-MIB: dlmodTable ::= { ucdDlmodMIB 2 } Cannot adopt OID in UCD-DLMOD-MIB: dlmodNextIndex ::= { ucdDlmodMIB 1 } Cannot adopt OID in NET-SNMP-EXAMPLES-MIB: netSnmpExamples ::= { netSnmp 2 } Cannot adopt OID in NET-SNMP-MIB: netSnmpConformance ::= { netSnmp 5 } Cannot adopt OID in NET-SNMP-MIB: netSnmpNotificationPrefix ::= { netSnmp 4 } Cannot adopt OID in NET-SNMP-MIB: netSnmpExperimental ::= { netSnmp 9999 } Cannot adopt OID in NET-SNMP-MIB: netSnmpEnumerations ::= { netSnmp 3 } Cannot adopt OID in NET-SNMP-MIB: netSnmpObjects ::= { netSnmp 1 } Cannot adopt OID in UCD-SNMP-MIB: versionDoDebugging ::= { version 20 } Cannot adopt OID in UCD-SNMP-MIB: versionSavePersistentData ::= { version 13 } Cannot adopt OID in UCD-SNMP-MIB: versionRestartAgent ::= { version 12 } Cannot adopt OID in UCD-SNMP-MIB: versionUpdateConfig ::= { version 11 } Cannot adopt OID in UCD-SNMP-MIB: versionClearCache ::= { version 10 } Cannot adopt OID in UCD-SNMP-MIB: versionConfigureOptions ::= { version 6 } Cannot adopt OID in UCD-SNMP-MIB: versionIdent ::= { version 5 } Cannot adopt OID in UCD-SNMP-MIB: versionCDate ::= { version 4 } Cannot adopt OID in UCD-SNMP-MIB: versionDate ::= { version 3 } Cannot adopt OID in UCD-SNMP-MIB: versionTag ::= { version 2 } Cannot adopt OID in UCD-SNMP-MIB: versionIndex ::= { version 1 } Cannot adopt OID in NET-SNMP-EXAMPLES-MIB: netSnmpExampleHeartbeatNotification ::= { netSnmpExampleNotificationPrefix 1 } Cannot adopt OID in NET-SNMP-AGENT-MIB: nsCacheStatus ::= { nsCacheEntry 3 } Cannot adopt OID in NET-SNMP-AGENT-MIB: nsCacheTimeout ::= { nsCacheEntry 2 } Cannot adopt OID in NET-SNMP-AGENT-MIB: nsCachedOID ::= { nsCacheEntry 1 } Cannot adopt OID in UCD-SNMP-MIB: unknown ::= { ucdSnmpAgent 255 } Cannot adopt OID in UCD-SNMP-MIB: dragonfly ::= { ucdSnmpAgent 17 } Cannot adopt OID in UCD-SNMP-MIB: macosx ::= { ucdSnmpAgent 16 } Cannot adopt OID in UCD-SNMP-MIB: aix ::= { ucdSnmpAgent 15 } Cannot adopt OID in UCD-SNMP-MIB: hpux11 ::= { ucdSnmpAgent 14 } Cannot adopt OID in UCD-SNMP-MIB: win32 ::= { ucdSnmpAgent 13 } Cannot adopt OID in UCD-SNMP-MIB: openbsd ::= { ucdSnmpAgent 12 } Cannot adopt OID in UCD-SNMP-MIB: bsdi ::= { ucdSnmpAgent 11 } Cannot adopt OID in UCD-SNMP-MIB: linux ::= { ucdSnmpAgent 10 } Cannot adopt OID in UCD-SNMP-MIB: irix ::= { ucdSnmpAgent 9 } Cannot adopt OID in UCD-SNMP-MIB: freebsd ::= { ucdSnmpAgent 8 } Cannot adopt OID in UCD-SNMP-MIB: netbsd1 ::= { ucdSnmpAgent 7 } Cannot adopt OID in UCD-SNMP-MIB: hpux10 ::= { ucdSnmpAgent 6 } Cannot adopt OID in UCD-SNMP-MIB: ultrix ::= { ucdSnmpAgent 5 } Cannot adopt OID in UCD-SNMP-MIB: osf ::= { ucdSnmpAgent 4 } Cannot adopt OID in UCD-SNMP-MIB: solaris ::= { ucdSnmpAgent 3 } Cannot adopt OID in UCD-SNMP-MIB: sunos4 ::= { ucdSnmpAgent 2 } Cannot adopt OID in UCD-SNMP-MIB: hpux9 ::= { ucdSnmpAgent 1 } Cannot adopt OID in NET-SNMP-EXTEND-MIB: nsExtendOutputGroup ::= { nsExtendGroups 2 } Cannot adopt OID in NET-SNMP-EXTEND-MIB: nsExtendConfigGroup ::= { nsExtendGroups 1 } Cannot adopt OID in UCD-DISKIO-MIB: diskIOEntry ::= { diskIOTable 1 } Cannot adopt OID in NET-SNMP-AGENT-MIB: nsTransactionEntry ::= { nsTransactionTable 1 } Cannot adopt OID in NET-SNMP-MIB: netSnmpGroups ::= { netSnmpConformance 2 } Cannot adopt OID in NET-SNMP-MIB: netSnmpCompliances ::= { netSnmpConformance 1 } Cannot adopt OID in UCD-SNMP-MIB: mrModuleName ::= { mrEntry 2 } Cannot adopt OID in UCD-SNMP-MIB: mrIndex ::= { mrEntry 1 } Cannot adopt OID in NET-SNMP-AGENT-MIB: nsDebugTokenEntry ::= { nsDebugTokenTable 1 } Cannot adopt OID in NET-SNMP-EXTEND-MIB: nsExtendStatus ::= { nsExtendConfigEntry 21 } Cannot adopt OID in NET-SNMP-EXTEND-MIB: nsExtendStorage ::= { nsExtendConfigEntry 20 } Cannot adopt OID in NET-SNMP-EXTEND-MIB: nsExtendRunType ::= { nsExtendConfigEntry 7 } Cannot adopt OID in NET-SNMP-EXTEND-MIB: nsExtendExecType ::= { nsExtendConfigEntry 6 } Cannot adopt OID in NET-SNMP-EXTEND-MIB: nsExtendCacheTime ::= { nsExtendConfigEntry 5 } Cannot adopt OID in NET-SNMP-EXTEND-MIB: nsExtendInput ::= { nsExtendConfigEntry 4 } Cannot adopt OID in NET-SNMP-EXTEND-MIB: nsExtendArgs ::= { nsExtendConfigEntry 3 } Cannot adopt OID in NET-SNMP-EXTEND-MIB: nsExtendCommand ::= { nsExtendConfigEntry 2 } Cannot adopt OID in NET-SNMP-EXTEND-MIB: nsExtendToken ::= { nsExtendConfigEntry 1 } Cannot adopt OID in NET-SNMP-AGENT-MIB: nsModuleTable ::= { nsMibRegistry 1 } Cannot adopt OID in NET-SNMP-MIB: netSnmpPlaypen ::= { netSnmpExperimental 9999 } Cannot adopt OID in NET-SNMP-EXAMPLES-MIB: netSnmpIETFWGEntry ::= { netSnmpIETFWGTable 1 } Cannot adopt OID in UCD-SNMP-MIB: prErrFixCmd ::= { prEntry 103 } Cannot adopt OID in UCD-SNMP-MIB: prErrFix ::= { prEntry 102 } Cannot adopt OID in UCD-SNMP-MIB: prErrMessage ::= { prEntry 101 } Cannot adopt OID in UCD-SNMP-MIB: prErrorFlag ::= { prEntry 100 } Cannot adopt OID in UCD-SNMP-MIB: prCount ::= { prEntry 5 } Cannot adopt OID in UCD-SNMP-MIB: prMax ::= { prEntry 4 } Cannot adopt OID in UCD-SNMP-MIB: prMin ::= { prEntry 3 } Cannot adopt OID in UCD-SNMP-MIB: prNames ::= { prEntry 2 } Cannot adopt OID in UCD-SNMP-MIB: prIndex ::= { prEntry 1 } Cannot adopt OID in UCD-DLMOD-MIB: dlmodEntry ::= { dlmodTable 1 } Cannot adopt OID in UCD-SNMP-MIB: memSwapErrorMsg ::= { memory 101 } Cannot adopt OID in UCD-SNMP-MIB: memSwapError ::= { memory 100 } Cannot adopt OID in UCD-SNMP-MIB: memUsedRealTXT ::= { memory 17 } Cannot adopt OID in UCD-SNMP-MIB: memUsedSwapTXT ::= { memory 16 } Cannot adopt OID in UCD-SNMP-MIB: memCached ::= { memory 15 } Cannot adopt OID in UCD-SNMP-MIB: memBuffer ::= { memory 14 } Cannot adopt OID in UCD-SNMP-MIB: memShared ::= { memory 13 } Cannot adopt OID in UCD-SNMP-MIB: memMinimumSwap ::= { memory 12 } Cannot adopt OID in UCD-SNMP-MIB: memTotalFree ::= { memory 11 } Cannot adopt OID in UCD-SNMP-MIB: memAvailRealTXT ::= { memory 10 } Cannot adopt OID in UCD-SNMP-MIB: memTotalRealTXT ::= { memory 9 } Cannot adopt OID in UCD-SNMP-MIB: memAvailSwapTXT ::= { memory 8 } Cannot adopt OID in UCD-SNMP-MIB: memTotalSwapTXT ::= { memory 7 } Cannot adopt OID in UCD-SNMP-MIB: memAvailReal ::= { memory 6 } Cannot adopt OID in UCD-SNMP-MIB: memTotalReal ::= { memory 5 } Cannot adopt OID in UCD-SNMP-MIB: memAvailSwap ::= { memory 4 } Cannot adopt OID in UCD-SNMP-MIB: memTotalSwap ::= { memory 3 } Cannot adopt OID in UCD-SNMP-MIB: memErrorName ::= { memory 2 } Cannot adopt OID in UCD-SNMP-MIB: memIndex ::= { memory 1 } Cannot adopt OID in UCD-DEMO-MIB: ucdDemoMIBObjects ::= { ucdDemoMIB 1 } Cannot adopt OID in NET-SNMP-AGENT-MIB: nsModuleTimeout ::= { nsModuleEntry 6 } Cannot adopt OID in NET-SNMP-AGENT-MIB: nsModuleModes ::= { nsModuleEntry 5 } Cannot adopt OID in NET-SNMP-AGENT-MIB: nsModuleName ::= { nsModuleEntry 4 } Cannot adopt OID in NET-SNMP-AGENT-MIB: nsmRegistrationPriority ::= { nsModuleEntry 3 } Cannot adopt OID in NET-SNMP-AGENT-MIB: nsmRegistrationPoint ::= { nsModuleEntry 2 } Cannot adopt OID in NET-SNMP-AGENT-MIB: nsmContextName ::= { nsModuleEntry 1 } Cannot adopt OID in LM-SENSORS-MIB: lmMiscSensorsEntry ::= { lmMiscSensorsTable 1 } Cannot adopt OID in NET-SNMP-MIB: netSnmpNotificationObjects ::= { netSnmpNotificationPrefix 1 } Cannot adopt OID in NET-SNMP-MIB: netSnmpNotifications ::= { netSnmpNotificationPrefix 0 } Cannot adopt OID in NET-SNMP-PASS-MIB: netSnmpPassTable ::= { netSnmpPassExamples 2 } Cannot adopt OID in NET-SNMP-PASS-MIB: netSnmpPassOIDValue ::= { netSnmpPassExamples 99 } Cannot adopt OID in NET-SNMP-PASS-MIB: netSnmpPassGauge ::= { netSnmpPassExamples 6 } Cannot adopt OID in NET-SNMP-PASS-MIB: netSnmpPassCounter ::= { netSnmpPassExamples 5 } Cannot adopt OID in NET-SNMP-PASS-MIB: netSnmpPassIpAddress ::= { netSnmpPassExamples 4 } Cannot adopt OID in NET-SNMP-PASS-MIB: netSnmpPassTimeTicks ::= { netSnmpPassExamples 3 } Cannot adopt OID in NET-SNMP-PASS-MIB: netSnmpPassString ::= { netSnmpPassExamples 1 } Cannot adopt OID in NET-SNMP-MIB: netSnmpDomains ::= { netSnmpEnumerations 3 } Cannot adopt OID in NET-SNMP-MIB: netSnmpAgentOIDs ::= { netSnmpEnumerations 2 } Cannot adopt OID in NET-SNMP-MIB: netSnmpModuleIDs ::= { netSnmpEnumerations 1 } Cannot adopt OID in LM-SENSORS-MIB: lmFanSensorsEntry ::= { lmFanSensorsTable 1 } Cannot adopt OID in LM-SENSORS-MIB: lmTempSensorsEntry ::= { lmTempSensorsTable 1 } Cannot adopt OID in NET-SNMP-AGENT-MIB: nsModuleGroup ::= { netSnmpGroups 2 } Cannot adopt OID in NET-SNMP-AGENT-MIB: nsCacheGroup ::= { netSnmpGroups 4 } Cannot adopt OID in NET-SNMP-AGENT-MIB: nsConfigGroups ::= { netSnmpGroups 7 } Cannot adopt OID in NET-SNMP-AGENT-MIB: nsTransactionGroup ::= { netSnmpGroups 8 } Cannot adopt OID in NET-SNMP-AGENT-MIB: nsAgentNotifyGroup ::= { netSnmpGroups 9 } Cannot adopt OID in UCD-SNMP-MIB: fileEntry ::= { fileTable 1 } Cannot adopt OID in NET-SNMP-VACM-MIB: nsVacmStatus ::= { nsVacmAccessEntry 5 } Cannot adopt OID in NET-SNMP-VACM-MIB: nsVacmStorageType ::= { nsVacmAccessEntry 4 } Cannot adopt OID in NET-SNMP-VACM-MIB: nsVacmViewName ::= { nsVacmAccessEntry 3 } Cannot adopt OID in NET-SNMP-VACM-MIB: nsVacmContextMatch ::= { nsVacmAccessEntry 2 } Cannot adopt OID in NET-SNMP-VACM-MIB: nsVacmAuthType ::= { nsVacmAccessEntry 1 } Cannot adopt OID in NET-SNMP-EXTEND-MIB: netSnmpExtendMIB ::= { nsExtensions 1 } Cannot adopt OID in NET-SNMP-EXTEND-MIB: nsExtendObjects ::= { nsExtensions 2 } Cannot adopt OID in NET-SNMP-EXTEND-MIB: nsExtendGroups ::= { nsExtensions 3 } Cannot adopt OID in LM-SENSORS-MIB: lmVoltSensorsEntry ::= { lmVoltSensorsTable 1 } Cannot adopt OID in NET-SNMP-MIB: netSnmp ::= { enterprises 8072 } Cannot adopt OID in UCD-SNMP-MIB: ucdavis ::= { enterprises 2021 } Cannot adopt OID in UCD-DISKIO-MIB: diskIONWrittenX ::= { diskIOEntry 13 } Cannot adopt OID in UCD-DISKIO-MIB: diskIONReadX ::= { diskIOEntry 12 } Cannot adopt OID in UCD-DISKIO-MIB: diskIOLA15 ::= { diskIOEntry 11 } Cannot adopt OID in UCD-DISKIO-MIB: diskIOLA5 ::= { diskIOEntry 10 } Cannot adopt OID in UCD-DISKIO-MIB: diskIOLA1 ::= { diskIOEntry 9 } Cannot adopt OID in UCD-DISKIO-MIB: diskIOWrites ::= { diskIOEntry 6 } Cannot adopt OID in UCD-DISKIO-MIB: diskIOReads ::= { diskIOEntry 5 } Cannot adopt OID in UCD-DISKIO-MIB: diskIONWritten ::= { diskIOEntry 4 } Cannot adopt OID in UCD-DISKIO-MIB: diskIONRead ::= { diskIOEntry 3 } Cannot adopt OID in UCD-DISKIO-MIB: diskIODevice ::= { diskIOEntry 2 } Cannot adopt OID in UCD-DISKIO-MIB: diskIOIndex ::= { diskIOEntry 1 } Cannot adopt OID in NET-SNMP-AGENT-MIB: nsTransactionMode ::= { nsTransactionEntry 2 } Cannot adopt OID in NET-SNMP-AGENT-MIB: nsTransactionID ::= { nsTransactionEntry 1 } Cannot adopt OID in NET-SNMP-AGENT-MIB: nsDebugTokenStatus ::= { nsDebugTokenEntry 4 } Cannot adopt OID in NET-SNMP-AGENT-MIB: nsDebugTokenPrefix ::= { nsDebugTokenEntry 2 } Cannot adopt OID in NET-SNMP-EXAMPLES-MIB: nsIETFWGChair2 ::= { netSnmpIETFWGEntry 3 } Cannot adopt OID in NET-SNMP-EXAMPLES-MIB: nsIETFWGChair1 ::= { netSnmpIETFWGEntry 2 } Cannot adopt OID in NET-SNMP-EXAMPLES-MIB: nsIETFWGName ::= { netSnmpIETFWGEntry 1 } Cannot adopt OID in NET-SNMP-AGENT-MIB: nsLoggingTable ::= { nsConfigLogging 1 } Cannot adopt OID in NET-SNMP-EXAMPLES-MIB: netSnmpHostsEntry ::= { netSnmpHostsTable 1 } Cannot adopt OID in UCD-DLMOD-MIB: dlmodStatus ::= { dlmodEntry 5 } Cannot adopt OID in UCD-DLMOD-MIB: dlmodError ::= { dlmodEntry 4 } Cannot adopt OID in UCD-DLMOD-MIB: dlmodPath ::= { dlmodEntry 3 } Cannot adopt OID in UCD-DLMOD-MIB: dlmodName ::= { dlmodEntry 2 } Cannot adopt OID in UCD-DLMOD-MIB: dlmodIndex ::= { dlmodEntry 1 } Cannot adopt OID in LM-SENSORS-MIB: lmMiscSensorsValue ::= { lmMiscSensorsEntry 3 } Cannot adopt OID in LM-SENSORS-MIB: lmMiscSensorsDevice ::= { lmMiscSensorsEntry 2 } Cannot adopt OID in LM-SENSORS-MIB: lmMiscSensorsIndex ::= { lmMiscSensorsEntry 1 } Cannot adopt OID in NET-SNMP-PASS-MIB: netSnmpPassEntry ::= { netSnmpPassTable 1 } Cannot adopt OID in LM-SENSORS-MIB: lmSensors ::= { ucdExperimental 16 } Cannot adopt OID in UCD-DISKIO-MIB: ucdDiskIOMIB ::= { ucdExperimental 15 } Cannot adopt OID in UCD-DLMOD-MIB: ucdDlmodMIB ::= { ucdExperimental 14 } Cannot adopt OID in UCD-SNMP-MIB: dskEntry ::= { dskTable 1 } Cannot adopt OID in NET-SNMP-AGENT-MIB: netSnmpAgentMIB ::= { netSnmpModuleIDs 2 } Cannot adopt OID in LM-SENSORS-MIB: lmFanSensorsValue ::= { lmFanSensorsEntry 3 } Cannot adopt OID in LM-SENSORS-MIB: lmFanSensorsDevice ::= { lmFanSensorsEntry 2 } Cannot adopt OID in LM-SENSORS-MIB: lmFanSensorsIndex ::= { lmFanSensorsEntry 1 } Cannot adopt OID in LM-SENSORS-MIB: lmTempSensorsValue ::= { lmTempSensorsEntry 3 } Cannot adopt OID in LM-SENSORS-MIB: lmTempSensorsDevice ::= { lmTempSensorsEntry 2 } Cannot adopt OID in LM-SENSORS-MIB: lmTempSensorsIndex ::= { lmTempSensorsEntry 1 } Cannot adopt OID in UCD-SNMP-MIB: logMatchTable ::= { logMatch 2 } Cannot adopt OID in UCD-SNMP-MIB: logMatchMaxEntries ::= { logMatch 1 } Cannot adopt OID in NET-SNMP-AGENT-MIB: nsLoggingEntry ::= { nsLoggingTable 1 } Cannot adopt OID in UCD-SNMP-MIB: fileErrorMsg ::= { fileEntry 101 } Cannot adopt OID in UCD-SNMP-MIB: fileErrorFlag ::= { fileEntry 100 } Cannot adopt OID in UCD-SNMP-MIB: fileMax ::= { fileEntry 4 } Cannot adopt OID in UCD-SNMP-MIB: fileSize ::= { fileEntry 3 } Cannot adopt OID in UCD-SNMP-MIB: fileName ::= { fileEntry 2 } Cannot adopt OID in UCD-SNMP-MIB: fileIndex ::= { fileEntry 1 } Cannot adopt OID in NET-SNMP-EXTEND-MIB: nsExtendOutput2Table ::= { nsExtendObjects 4 } Cannot adopt OID in NET-SNMP-EXTEND-MIB: nsExtendOutput1Table ::= { nsExtendObjects 3 } Cannot adopt OID in NET-SNMP-EXTEND-MIB: nsExtendConfigTable ::= { nsExtendObjects 2 } Cannot adopt OID in NET-SNMP-EXTEND-MIB: nsExtendNumEntries ::= { nsExtendObjects 1 } Cannot adopt OID in NET-SNMP-EXTEND-MIB: nsExtendOutput1Entry ::= { nsExtendOutput1Table 1 } Cannot adopt OID in UCD-SNMP-MIB: ssCpuRawGuestNice ::= { systemStats 66 } Cannot adopt OID in UCD-SNMP-MIB: ssCpuRawGuest ::= { systemStats 65 } Cannot adopt OID in UCD-SNMP-MIB: ssCpuRawSteal ::= { systemStats 64 } Cannot adopt OID in UCD-SNMP-MIB: ssRawSwapOut ::= { systemStats 63 } Cannot adopt OID in UCD-SNMP-MIB: ssRawSwapIn ::= { systemStats 62 } Cannot adopt OID in UCD-SNMP-MIB: ssCpuRawSoftIRQ ::= { systemStats 61 } Cannot adopt OID in UCD-SNMP-MIB: ssRawContexts ::= { systemStats 60 } Cannot adopt OID in UCD-SNMP-MIB: ssRawInterrupts ::= { systemStats 59 } Cannot adopt OID in UCD-SNMP-MIB: ssIORawReceived ::= { systemStats 58 } Cannot adopt OID in UCD-SNMP-MIB: ssIORawSent ::= { systemStats 57 } Cannot adopt OID in UCD-SNMP-MIB: ssCpuRawInterrupt ::= { systemStats 56 } Cannot adopt OID in UCD-SNMP-MIB: ssCpuRawKernel ::= { systemStats 55 } Cannot adopt OID in UCD-SNMP-MIB: ssCpuRawWait ::= { systemStats 54 } Cannot adopt OID in UCD-SNMP-MIB: ssCpuRawIdle ::= { systemStats 53 } Cannot adopt OID in UCD-SNMP-MIB: ssCpuRawSystem ::= { systemStats 52 } Cannot adopt OID in UCD-SNMP-MIB: ssCpuRawNice ::= { systemStats 51 } Cannot adopt OID in UCD-SNMP-MIB: ssCpuRawUser ::= { systemStats 50 } Cannot adopt OID in UCD-SNMP-MIB: ssCpuIdle ::= { systemStats 11 } Cannot adopt OID in UCD-SNMP-MIB: ssCpuSystem ::= { systemStats 10 } Cannot adopt OID in UCD-SNMP-MIB: ssCpuUser ::= { systemStats 9 } Cannot adopt OID in UCD-SNMP-MIB: ssSysContext ::= { systemStats 8 } Cannot adopt OID in UCD-SNMP-MIB: ssSysInterrupts ::= { systemStats 7 } Cannot adopt OID in UCD-SNMP-MIB: ssIOReceive ::= { systemStats 6 } Cannot adopt OID in UCD-SNMP-MIB: ssIOSent ::= { systemStats 5 } Cannot adopt OID in UCD-SNMP-MIB: ssSwapOut ::= { systemStats 4 } Cannot adopt OID in UCD-SNMP-MIB: ssSwapIn ::= { systemStats 3 } Cannot adopt OID in UCD-SNMP-MIB: ssErrorName ::= { systemStats 2 } Cannot adopt OID in UCD-SNMP-MIB: ssIndex ::= { systemStats 1 } Cannot adopt OID in NET-SNMP-EXTEND-MIB: nsExtendOutput2Entry ::= { nsExtendOutput2Table 1 } Cannot adopt OID in UCD-SNMP-MIB: laEntry ::= { laTable 1 } Cannot adopt OID in NET-SNMP-AGENT-MIB: nsCacheTable ::= { nsCache 3 } Cannot adopt OID in NET-SNMP-AGENT-MIB: nsCacheEnabled ::= { nsCache 2 } Cannot adopt OID in NET-SNMP-AGENT-MIB: nsCacheDefaultTimeout ::= { nsCache 1 } Cannot adopt OID in UCD-SNMP-MIB: logMatchEntry ::= { logMatchTable 1 } Cannot adopt OID in UCD-SNMP-MIB: extEntry ::= { extTable 1 } Cannot adopt OID in NET-SNMP-AGENT-MIB: nsConfigLogging ::= { nsConfiguration 2 } Cannot adopt OID in NET-SNMP-AGENT-MIB: nsConfigDebug ::= { nsConfiguration 1 } Cannot adopt OID in NET-SNMP-EXAMPLES-MIB: netSnmpExampleString ::= { netSnmpExampleScalars 3 } Cannot adopt OID in NET-SNMP-EXAMPLES-MIB: netSnmpExampleSleeper ::= { netSnmpExampleScalars 2 } Cannot adopt OID in NET-SNMP-EXAMPLES-MIB: netSnmpExampleInteger ::= { netSnmpExampleScalars 1 } Cannot adopt OID in LM-SENSORS-MIB: lmVoltSensorsValue ::= { lmVoltSensorsEntry 3 } Cannot adopt OID in LM-SENSORS-MIB: lmVoltSensorsDevice ::= { lmVoltSensorsEntry 2 } Cannot adopt OID in LM-SENSORS-MIB: lmVoltSensorsIndex ::= { lmVoltSensorsEntry 1 } Cannot adopt OID in NET-SNMP-AGENT-MIB: nsCacheEntry ::= { nsCacheTable 1 } Cannot adopt OID in NET-SNMP-AGENT-MIB: nsDebugTokenTable ::= { nsConfigDebug 4 } Cannot adopt OID in NET-SNMP-AGENT-MIB: nsDebugDumpPdu ::= { nsConfigDebug 3 } Cannot adopt OID in NET-SNMP-AGENT-MIB: nsDebugOutputAll ::= { nsConfigDebug 2 } Cannot adopt OID in NET-SNMP-AGENT-MIB: nsDebugEnabled ::= { nsConfigDebug 1 } Cannot adopt OID in UCD-DEMO-MIB: ucdDemoPassphrase ::= { ucdDemoPublic 4 } Cannot adopt OID in UCD-DEMO-MIB: ucdDemoUserList ::= { ucdDemoPublic 3 } Cannot adopt OID in UCD-DEMO-MIB: ucdDemoPublicString ::= { ucdDemoPublic 2 } Cannot adopt OID in UCD-DEMO-MIB: ucdDemoResetKeys ::= { ucdDemoPublic 1 } Cannot adopt OID in NET-SNMP-EXAMPLES-MIB: netSnmpExampleHeartbeatName ::= { netSnmpExampleNotificationObjects 2 } Cannot adopt OID in NET-SNMP-EXAMPLES-MIB: netSnmpExampleHeartbeatRate ::= { netSnmpExampleNotificationObjects 1 } Cannot adopt OID in NET-SNMP-PASS-MIB: netSnmpPassExamples ::= { netSnmpExamples 255 } Cannot adopt OID in NET-SNMP-EXAMPLES-MIB: netSnmpExampleNotifications ::= { netSnmpExamples 3 } Cannot adopt OID in NET-SNMP-EXAMPLES-MIB: netSnmpExampleTables ::= { netSnmpExamples 2 } Cannot adopt OID in NET-SNMP-EXAMPLES-MIB: netSnmpExampleScalars ::= { netSnmpExamples 1 } Cannot adopt OID in NET-SNMP-VACM-MIB: nsVacmAccessTable ::= { netSnmpVacmMIB 1 } Cannot adopt OID in UCD-SNMP-MIB: ucdShutdown ::= { ucdTraps 2 } Cannot adopt OID in UCD-SNMP-MIB: ucdStart ::= { ucdTraps 1 } Cannot adopt OID in LM-SENSORS-MIB: lmMiscSensorsTable ::= { lmSensors 5 } Cannot adopt OID in LM-SENSORS-MIB: lmVoltSensorsTable ::= { lmSensors 4 } Cannot adopt OID in LM-SENSORS-MIB: lmFanSensorsTable ::= { lmSensors 3 } Cannot adopt OID in LM-SENSORS-MIB: lmTempSensorsTable ::= { lmSensors 2 } Cannot adopt OID in LM-SENSORS-MIB: lmSensorsMIB ::= { lmSensors 1 } Cannot adopt OID in UCD-SNMP-MIB: mrEntry ::= { mrTable 1 } Cannot adopt OID in NET-SNMP-EXTEND-MIB: nsExtendConfigEntry ::= { nsExtendConfigTable 1 } Cannot adopt OID in NET-SNMP-EXAMPLES-MIB: netSnmpHostRowStatus ::= { netSnmpHostsEntry 5 } Cannot adopt OID in NET-SNMP-EXAMPLES-MIB: netSnmpHostStorage ::= { netSnmpHostsEntry 4 } Cannot adopt OID in NET-SNMP-EXAMPLES-MIB: netSnmpHostAddress ::= { netSnmpHostsEntry 3 } Cannot adopt OID in NET-SNMP-EXAMPLES-MIB: netSnmpHostAddressType ::= { netSnmpHostsEntry 2 } Cannot adopt OID in NET-SNMP-EXAMPLES-MIB: netSnmpHostName ::= { netSnmpHostsEntry 1 } Cannot adopt OID in UCD-SNMP-MIB: prEntry ::= { prTable 1 } Cannot adopt OID in NET-SNMP-EXAMPLES-MIB: netSnmpExampleNotification ::= { netSnmpExampleNotifications 1 } Cannot adopt OID in NET-SNMP-EXAMPLES-MIB: netSnmpExampleNotificationObjects ::= { netSnmpExampleNotifications 2 } Cannot adopt OID in NET-SNMP-EXAMPLES-MIB: netSnmpExampleNotificationPrefix ::= { netSnmpExampleNotifications 0 } Cannot adopt OID in NET-SNMP-EXAMPLES-MIB: netSnmpHostsTable ::= { netSnmpExampleTables 2 } Cannot adopt OID in NET-SNMP-EXAMPLES-MIB: netSnmpIETFWGTable ::= { netSnmpExampleTables 1 } Cannot adopt OID in NET-SNMP-PASS-MIB: netSnmpPassOID ::= { netSnmpPassEntry 3 } Cannot adopt OID in NET-SNMP-PASS-MIB: netSnmpPassInteger ::= { netSnmpPassEntry 2 } Cannot adopt OID in NET-SNMP-PASS-MIB: netSnmpPassIndex ::= { netSnmpPassEntry 1 } Cannot adopt OID in NET-SNMP-VACM-MIB: netSnmpVacmMIB ::= { netSnmpObjects 9 } Cannot adopt OID in NET-SNMP-AGENT-MIB: nsVersion ::= { netSnmpObjects 1 } Cannot adopt OID in NET-SNMP-AGENT-MIB: nsMibRegistry ::= { netSnmpObjects 2 } Cannot adopt OID in NET-SNMP-AGENT-MIB: nsExtensions ::= { netSnmpObjects 3 } Cannot adopt OID in NET-SNMP-AGENT-MIB: nsDLMod ::= { netSnmpObjects 4 } Cannot adopt OID in NET-SNMP-AGENT-MIB: nsCache ::= { netSnmpObjects 5 } Cannot adopt OID in NET-SNMP-AGENT-MIB: nsErrorHistory ::= { netSnmpObjects 6 } Cannot adopt OID in NET-SNMP-AGENT-MIB: nsConfiguration ::= { netSnmpObjects 7 } Cannot adopt OID in NET-SNMP-AGENT-MIB: nsTransactions ::= { netSnmpObjects 8 } Cannot adopt OID in UCD-DEMO-MIB: ucdDemoMIB ::= { ucdavis 14 } Cannot adopt OID in UCD-SNMP-MIB: logMatch ::= { ucdavis 16 } Cannot adopt OID in UCD-SNMP-MIB: fileTable ::= { ucdavis 15 } Cannot adopt OID in UCD-SNMP-MIB: ucdTraps ::= { ucdavis 251 } Cannot adopt OID in UCD-SNMP-MIB: systemStats ::= { ucdavis 11 } Cannot adopt OID in UCD-SNMP-MIB: mrTable ::= { ucdavis 102 } Cannot adopt OID in UCD-SNMP-MIB: snmperrs ::= { ucdavis 101 } Cannot adopt OID in UCD-SNMP-MIB: version ::= { ucdavis 100 } Cannot adopt OID in UCD-SNMP-MIB: laTable ::= { ucdavis 10 } Cannot adopt OID in UCD-SNMP-MIB: dskTable ::= { ucdavis 9 } Cannot adopt OID in UCD-SNMP-MIB: memory ::= { ucdavis 4 } Cannot adopt OID in UCD-SNMP-MIB: extTable ::= { ucdavis 8 } Cannot adopt OID in UCD-SNMP-MIB: prTable ::= { ucdavis 2 } Cannot adopt OID in UCD-SNMP-MIB: ucdSnmpAgent ::= { ucdavis 250 } Cannot adopt OID in UCD-SNMP-MIB: ucdExperimental ::= { ucdavis 13 } Cannot adopt OID in UCD-SNMP-MIB: ucdInternal ::= { ucdavis 12 } Cannot adopt OID in NET-SNMP-AGENT-MIB: nsModuleEntry ::= { nsModuleTable 1 } Cannot adopt OID in UCD-SNMP-MIB: dskErrorMsg ::= { dskEntry 101 } Cannot adopt OID in UCD-SNMP-MIB: dskErrorFlag ::= { dskEntry 100 } Cannot adopt OID in UCD-SNMP-MIB: dskUsedHigh ::= { dskEntry 16 } Cannot adopt OID in UCD-SNMP-MIB: dskUsedLow ::= { dskEntry 15 } Cannot adopt OID in UCD-SNMP-MIB: dskAvailHigh ::= { dskEntry 14 } Cannot adopt OID in UCD-SNMP-MIB: dskAvailLow ::= { dskEntry 13 } Cannot adopt OID in UCD-SNMP-MIB: dskTotalHigh ::= { dskEntry 12 } Cannot adopt OID in UCD-SNMP-MIB: dskTotalLow ::= { dskEntry 11 } Cannot adopt OID in UCD-SNMP-MIB: dskPercentNode ::= { dskEntry 10 } Cannot adopt OID in UCD-SNMP-MIB: dskPercent ::= { dskEntry 9 } Cannot adopt OID in UCD-SNMP-MIB: dskUsed ::= { dskEntry 8 } Cannot adopt OID in UCD-SNMP-MIB: dskAvail ::= { dskEntry 7 } Cannot adopt OID in UCD-SNMP-MIB: dskTotal ::= { dskEntry 6 } Cannot adopt OID in UCD-SNMP-MIB: dskMinPercent ::= { dskEntry 5 } Cannot adopt OID in UCD-SNMP-MIB: dskMinimum ::= { dskEntry 4 } Cannot adopt OID in UCD-SNMP-MIB: dskDevice ::= { dskEntry 3 } Cannot adopt OID in UCD-SNMP-MIB: dskPath ::= { dskEntry 2 } Cannot adopt OID in UCD-SNMP-MIB: dskIndex ::= { dskEntry 1 } Cannot adopt OID in UCD-DISKIO-MIB: diskIOTable ::= { ucdDiskIOMIB 1 } Cannot adopt OID in NET-SNMP-AGENT-MIB: nsLoggingGroup ::= { nsConfigGroups 2 } Cannot adopt OID in NET-SNMP-AGENT-MIB: nsDebugGroup ::= { nsConfigGroups 1 } Cannot adopt OID in UCD-SNMP-MIB: snmperrErrMessage ::= { snmperrs 101 } Cannot adopt OID in UCD-SNMP-MIB: snmperrErrorFlag ::= { snmperrs 100 } Cannot adopt OID in UCD-SNMP-MIB: snmperrNames ::= { snmperrs 2 } Cannot adopt OID in UCD-SNMP-MIB: snmperrIndex ::= { snmperrs 1 } Cannot adopt OID in NET-SNMP-AGENT-MIB: nsTransactionTable ::= { nsTransactions 1 } Cannot adopt OID in NET-SNMP-AGENT-MIB: nsLogStatus ::= { nsLoggingEntry 5 } Cannot adopt OID in NET-SNMP-AGENT-MIB: nsLogMaxLevel ::= { nsLoggingEntry 4 } Cannot adopt OID in NET-SNMP-AGENT-MIB: nsLogType ::= { nsLoggingEntry 3 } Cannot adopt OID in NET-SNMP-AGENT-MIB: nsLogToken ::= { nsLoggingEntry 2 } Cannot adopt OID in NET-SNMP-AGENT-MIB: nsLogLevel ::= { nsLoggingEntry 1 } Cannot adopt OID in NET-SNMP-EXTEND-MIB: nsExtendResult ::= { nsExtendOutput1Entry 4 } Cannot adopt OID in NET-SNMP-EXTEND-MIB: nsExtendOutNumLines ::= { nsExtendOutput1Entry 3 } Cannot adopt OID in NET-SNMP-EXTEND-MIB: nsExtendOutputFull ::= { nsExtendOutput1Entry 2 } Cannot adopt OID in NET-SNMP-EXTEND-MIB: nsExtendOutput1Line ::= { nsExtendOutput1Entry 1 } Cannot adopt OID in NET-SNMP-EXTEND-MIB: nsExtendOutLine ::= { nsExtendOutput2Entry 2 } Cannot adopt OID in NET-SNMP-EXTEND-MIB: nsExtendLineIndex ::= { nsExtendOutput2Entry 1 } Cannot adopt OID in NET-SNMP-AGENT-MIB: nsNotifyStart ::= { netSnmpNotifications 1 } Cannot adopt OID in NET-SNMP-AGENT-MIB: nsNotifyShutdown ::= { netSnmpNotifications 2 } Cannot adopt OID in NET-SNMP-AGENT-MIB: nsNotifyRestart ::= { netSnmpNotifications 3 } Cannot adopt OID in UCD-SNMP-MIB: laErrMessage ::= { laEntry 101 } Cannot adopt OID in UCD-SNMP-MIB: laErrorFlag ::= { laEntry 100 } Cannot adopt OID in UCD-SNMP-MIB: laLoadFloat ::= { laEntry 6 } Cannot adopt OID in UCD-SNMP-MIB: laLoadInt ::= { laEntry 5 } Cannot adopt OID in UCD-SNMP-MIB: laConfig ::= { laEntry 4 } Cannot adopt OID in UCD-SNMP-MIB: laLoad ::= { laEntry 3 } Cannot adopt OID in UCD-SNMP-MIB: laNames ::= { laEntry 2 } Cannot adopt OID in UCD-SNMP-MIB: laIndex ::= { laEntry 1 } PHP Fatal error: Class 'TelegramBot\TelegramBotManager\BotManager' not found in /var/www/tg/manager.php on line 18

bot manager respond: invalid Access

Support Question

Required Information

? !
Operating system Name and version
PHP Telegram Bot Manager version 1.5.0
PHP Telegram Bot version 0.62
PHP version 7,2
MySQL version 10,2
Update Method Webhook
Self-signed certificate no
RAW update (if available) {...}

Summary

HI, after many day's of try i dediced to ask for help.
I'm trying to create a bot for telegram,
i'm using hostinger cloud global service, and i connected via SSH to my linux space (i thing hostinger is linux)
My first test was with set.php, unset.php and it work perfectly. But i decided to use manager.php so i can set password (secret) to protect set, unset and reset.

If i try use manager.php from ssh i can do set, unset, reset, webhookinfo without any problem.
so the command:
php manager.php a=reset / set / unset / WebHookInfo The Work without any problem
If i try from browser i get always invalid access.
https://mybotlink/manager.php?s=123456789?a=set/unset/reset/WebHookInfo return always invalid access

I spend a lot of time (3 full days) without found a solution.
Someone could help me to solve this problem ?

After my name the content of composer.json and manager.php
under //Bot Setting and // MySql Setting all parameter are not real, made only for this support help
I hope this is enough to discover where is my error.
Thank's a lot for help
Alex

<- This is content of composer.json: -------------------------------------->

{
    "name": "telegram-bot/example-bot",
    "type": "project",
    "description": "PHP Telegram Bot Example",
    "keywords": ["telegram", "bot", "example"],
    "license": "MIT",
    "homepage": "https://github.com/php-telegram-bot/example-bot",
    "support": {
        "issues": "https://github.com/php-telegram-bot/example-bot/issues",
        "source": "https://github.com/php-telegram-bot/example-bot"
    },
    "authors": [
        {
            "name": "PHP Telegram Bot Team",
            "homepage": "https://github.com/php-telegram-bot/example-bot/graphs/contributors",
            "role": "Developer"
        }
    ],
    "require": {
        "php-telegram-bot/telegram-bot-manager": "*",
        "longman/telegram-bot": "*"
    }
}

<- This is content of manager.php: -------------------------------------->

<?php
/**
 * README
 * This configuration file is intended to be used as the main script for the PHP Telegram Bot Manager.
 * Uncommented parameters must be filled
 *
 * For the full list of options, go to:
 * https://github.com/php-telegram-bot/telegram-bot-manager#set-extra-bot-parameters
 */

// By Alex to show \n
header('Content-type: text/plain');

// use TelegramBot\TelegramBotManager\BotManager;

// Bot Settings
$bot_api_key      = 'my api info';
$bot_username     = 'my channel info';
$bot_webhook_url  = 'https://mybotlink/manager.php';
$bot_secret       = '1234567890';
// MySql Settings
$mysql_host       = '127.0.0.1';
$mysql_port       = 3306;
$mysql_database   = 'my db name';
$mysql_user       = 'my db user';
$mysql_password   = 'my db password';

// Load composer.
require_once __DIR__ . '/vendor/autoload.php';

// Get ip info request to show if ip is correct
// $ip = $_SERVER['REMOTE_ADDR'] ?? '0.0.0.0';
// echo 'indirizzo ip : ' . $ip . PHP_EOL;

try {
    $bot = new TelegramBot\TelegramBotManager\BotManager([
        // Add you bot's API key and name
        'api_key'      => $bot_api_key,
        'bot_username' => $bot_username,

        // Secret key required to access the webhook
        'secret'       => $bot_secret,

        'webhook'      => [
              // When using webhook, this needs to be uncommented and defined
              'url' => $bot_webhook_url,
              // Use self-signed certificate
              // 'certificate' => __DIR__ . '/server.crt',
              // Limit maximum number of connections
              'max_connections' => 5,
              // (array) List the types of updates you want your bot to receive.
              'allowed_updates' => ['message', 'edited_channel_post', 'callback_query'],
          ],

          // (bool) Only allow webhook access from valid Telegram API IPs.
          'validate_request' => true,
          // (array) When using `validate_request`, also allow these IPs.
          'valid_ips'        => [
              'my public ip',       // single
              // '192.168.1.0/24',  // CIDR
              // '10/8',            // CIDR (short)
              // '5.6.*',           // wildcard
              // '1.1.1.1-2.2.2.2', // range
          ],

          // (array) An array of user ids that have admin access to your bot (must be integers).
          'admins'           => [12345],

          // (array) All options that have to do with commands.
          'commands'         => [
              // (array) A list of custom commands paths.
              'paths'   => [
                      __DIR__ . '/Commands',
                  ],
              ],

          // (array) List of configurable paths.
          'paths'            => [
              // (string) Custom download path.
              'download' => __DIR__ . '/Download',
              // (string) Custom upload path.
              'upload'   => __DIR__ . '/Upload',
          ],

          // (array) Paths where the log files should be put.
          'logging'          => [
              // (string) Log file for all incoming update requests.
              'update' => __DIR__ . '/LOG/Bot-update.log',
              // (string) Log file for debug purposes.
              'debug'  => __DIR__ . '/LOG/Bot-debug.log',
              // (string) Log file for all errors.
              'error'  => __DIR__ . '/LOG/Bot-error.log',
          ],

          // (array) Mysql credentials to connect a database (necessary for [`getUpdates`](#using-getupdates-method) method!).
          'mysql'            => [
              'host'         => $mysql_host,
              'port'         => $mysql_port,
              'user'         => $mysql_user,
              'password'     => $mysql_password ,
              'database'     => $mysql_database,
              // 'table_prefix' => 'tbl_prfx_',    // optional
              // 'encoding'     => 'utf8mb4',      // optional
          ],

          // (array) All options that have to do with cron.
          'cron'             => [
              // (array) List of groups that contain the commands to execute.
              'groups' => [
                  // Each group has a name and array of commands.
                  // When no group is defined, the default group gets executed.
                  'default'     => [
                      '/default_cron_command',
                  ],
                  'maintenance' => [
                      '/db_cleanup',
                      '/db_repair',
                      '/log_rotate',
                      '/message_admins Maintenance completed',
                  ],
              ],
          ],


          // (array) All options that have to do with the limiter.
          'limiter'     => [
              // (bool) Enable or disable the limiter functionality.
              'enabled' => true,
              // (array) Any extra options to pass to the limiter.
              'options' => [
                  // (float) Interval between request handles.
                  'interval' => 0.5,
              ],
          ],

        // (string) Override the custom input of your bot (mostly for testing purposes!).
        //'custom_input'     => '{"some":"raw", "json":"update"}',

    ]);

    $bot->run();

    $bot->setCustomGetUpdatesCallback(function (ServerResponse $get_updates_response) {
        $results = array_filter((array) $get_updates_response->getResult());

        return sprintf('There are %d update(s)' . PHP_EOL, count($results));
    });
}

catch (Longman\TelegramBot\Exception\TelegramException $e) {
    // Silence is golden!
    echo 'Telegram Excedption : ' . $e . PHP_EOL;
    // Log telegram errors
    Longman\TelegramBot\TelegramLog::error($e);
}
catch (Longman\TelegramBot\Exception\TelegramLogException $e) {
    // Silence is golden!
    // Uncomment this to catch log initialisation errors
    echo 'Telegram Log Excedption : ' . $e . PHP_EOL;
}
catch (\Exception $e) {
    echo 'exception : ' . $e->getMessage() . PHP_EOL;
}

Fatal error: Call to a member function getChat() on null in BotManager.php:505

Bug Report

? !
Operating system Linux 5.10.15-1-MANJARO
PHP Telegram Bot Manager version 1.6.0
PHP Telegram Bot version 0.70.1
PHP version 8.0.1
Update Method getUpdates

RAW update

Longman\TelegramBot\Entities\CallbackQuery::__set_state(array(
  ...
   'raw_data' => 
  array (
    'id' => '...',
    'from' => 
    array (
      'id' => ...,
      'is_bot' => false,
      'first_name' => '...',
      'username' => '...',
      'language_code' => '...',
    ),
    'inline_message_id' => '...',
    'chat_instance' => '...',
    'data' => '...',
  ),
   'bot_username' => '...',
))

Summary

Fatal error: Call to a member function getChat() on null in BotManager.php:505

How to reproduce

answer() InlineQuery with InlineQueryResult*[] containing input_message_content and reply_markup with InlineKeyboard with callback_data-button, then choose that item from result then click inline button to get CallbackQuery above.

Tested in PM/Saved Messages chat.

installing with composer

]# composer update
Loading composer repositories with package information
Updating dependencies (including require-dev)
Your requirements could not be resolved to an installable set of packages.

Problem 1
- php-telegram-bot/telegram-bot-manager 1.5.0 requires longman/telegram-bot ^0.59 -> satisfiable by longman/telegram-bot[0.59.0, 0.59.1] but these conflict with your requirements or minimum-stability.
- php-telegram-bot/telegram-bot-manager 1.4.0 requires longman/telegram-bot ^0.57 -> satisfiable by longman/telegram-bot[0.57.0] but these conflict with your requirements or minimum-stability.
- Installation request for php-telegram-bot/telegram-bot-manager ^1.4 -> satisfiable by php-telegram-bot/telegram-bot-manager[1.4.0, 1.5.0].

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.