Giter Site home page Giter Site logo

api's Introduction

PHP Telegram Bot Api

Latest Version on Packagist Software License Total Downloads

An extended native php wrapper for Telegram Bot API without requirements. Supports all methods and types of responses.

Bots: An introduction for developers

Bots are special Telegram accounts designed to handle messages automatically. Users can interact with bots by sending them command messages in private or group chats.

You control your bots using HTTPS requests to bot API.

The Bot API is an HTTP-based interface created for developers keen on building bots for Telegram. To learn how to create and set up a bot, please consult Introduction to Bots and Bot FAQ.

Installation

Via Composer

$ composer require telegram-bot/api

Usage

See example DevAnswerBot (russian).

API Wrapper

Send message

$bot = new \TelegramBot\Api\BotApi('YOUR_BOT_API_TOKEN');

$bot->sendMessage($chatId, $messageText);

Send document

$bot = new \TelegramBot\Api\BotApi('YOUR_BOT_API_TOKEN');

$document = new \CURLFile('document.txt');

$bot->sendDocument($chatId, $document);

Send message with reply keyboard

$bot = new \TelegramBot\Api\BotApi('YOUR_BOT_API_TOKEN');

$keyboard = new \TelegramBot\Api\Types\ReplyKeyboardMarkup(array(array("one", "two", "three")), true); // true for one-time keyboard

$bot->sendMessage($chatId, $messageText, null, false, null, $keyboard);

Send message with inline keyboard

$bot = new \TelegramBot\Api\BotApi('YOUR_BOT_API_TOKEN');

$keyboard = new \TelegramBot\Api\Types\Inline\InlineKeyboardMarkup(
            [
                [
                    ['text' => 'link', 'url' => 'https://core.telegram.org']
                ]
            ]
        );
        
$bot->sendMessage($chatId, $messageText, null, false, null, $keyboard);

Send media group

$bot = new \TelegramBot\Api\BotApi('YOUR_BOT_API_TOKEN');

$media = new \TelegramBot\Api\Types\InputMedia\ArrayOfInputMedia();
$media->addItem(new TelegramBot\Api\Types\InputMedia\InputMediaPhoto('https://avatars3.githubusercontent.com/u/9335727'));
$media->addItem(new TelegramBot\Api\Types\InputMedia\InputMediaPhoto('https://avatars3.githubusercontent.com/u/9335727'));
// Same for video
// $media->addItem(new TelegramBot\Api\Types\InputMedia\InputMediaVideo('http://clips.vorwaerts-gmbh.de/VfE_html5.mp4'));
$bot->sendMediaGroup($chatId, $media);

Client

require_once "vendor/autoload.php";

try {
    $bot = new \TelegramBot\Api\Client('YOUR_BOT_API_TOKEN');

    //Handle /ping command
    $bot->command('ping', function ($message) use ($bot) {
        $bot->sendMessage($message->getChat()->getId(), 'pong!');
    });
    
    //Handle text messages
    $bot->on(function (\TelegramBot\Api\Types\Update $update) use ($bot) {
        $message = $update->getMessage();
        $id = $message->getChat()->getId();
        $bot->sendMessage($id, 'Your message: ' . $message->getText());
    }, function () {
        return true;
    });
    
    $bot->run();

} catch (\TelegramBot\Api\Exception $e) {
    $e->getMessage();
}

Local Bot API Server

For using custom local bot API server

use TelegramBot\Api\Client;
$token = 'YOUR_BOT_API_TOKEN';
$bot = new Client($token, null, null, 'http://localhost:8081');

Third-party Http Client

use Symfony\Component\HttpClient\HttpClient;
use TelegramBot\Api\BotApi;
use TelegramBot\Api\Http\SymfonyHttpClient;
$token = 'YOUR_BOT_API_TOKEN';
$bot = new Client($token, null, new SymfonyHttpClient(HttpClient::create()););

Change log

Please see CHANGELOG for more information what has changed recently.

Testing

$ composer test

Contributing

Please see CONTRIBUTING for details.

Security

If you discover any security related issues, please email [email protected] instead of using the issue tracker.

Credits

License

The MIT License (MIT). Please see License File for more information.

api's People

Contributors

7eodorus avatar aj-github-cmd avatar akeinhell avatar bernard-ng avatar boshurik avatar choldimir avatar flaksp avatar gilberg-vrn avatar hb220 avatar igusev avatar julielesss avatar lopatinas avatar mamontovdmitriy avatar matiniamirhossein avatar mcarrow avatar muhammadmp97 avatar myzik avatar nikserg avatar nullform avatar numairawan avatar palehin avatar pembrock avatar popsul avatar pwsdotru avatar scarboroid avatar sergeax avatar stelzek avatar themy3 avatar uc-itcom avatar vitorbari 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  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

api's Issues

Undefined index: last_name

Hi, I am using Laravel 5 for my app.
Message successfully send, but after send I see error:
ErrorException in BaseType.php line 46:
Undefined index: last_name

  1. in BaseType.php line 46
  2. at HandleExceptions->handleError('8', 'Undefined index: last_name', '/Users/fedarpiashko/partsmarket24-demo/vendor/telegram-bot/api/src/BaseType.php', '46', array('data' => array('id' => '127273129', 'first_name' => 'pmt5_bot', 'username' => 'pmt5_bot'), 'key' => 'last_name', 'item' => true, 'method' => 'setLastName')) in BaseType.php line 46

Не работает отправка файлов

Данная проблема из-за того, что данные для запроса обрабатываются через http_build_query(), который ничего не знает о \CURLFile, и в конечном итоге, запрос передается не методом `multipart/form-data.

Copy message from other channel

Hi
Sorry,I have a question about your project(telegram).
Can I get the message channels that I'm not their admin?
I want write a script that read message from other chanel and write to
my chanel.
I can do it?
best regards
thanks

InvalidArgumentException when receiving document

Receiving a document/file using the current git code, throws an exception. It's hard to get by because the message remains available on the server.
#0 /var/www/telegram-bot/BaseType.php(76): TelegramBot\Api\BaseType::validate(Array)
#1 /var/www/dev_autorouter/libs/telegram-bot/BaseType.php(49): TelegramBot\Api\BaseType::fromResponse(Array)
#2 /var/www/telegram-bot/BaseType.php(78): TelegramBot\Api\BaseType->map(Array)
#3 /var/www/telegram-bot/BaseType.php(49): TelegramBot\Api\BaseType::fromResponse(Array)
#4 /var/www/telegram-bot/BaseType.php(78): TelegramBot\Api\BaseType->map(Array)
#5 /var/www/telegram-bot/BotApi.php(227): TelegramBot\Api\BaseType::fromResponse(Array)
#6 /var/www/libs/telegram_bot.php(62): TelegramBot\Api\BotApi->getUpdates(10278, 100, 10000)
#7 {main}

getUpdates method: Fatal error: Uncaught exception 'TelegramBot\Api\HttpException' with message 'Conflict'

hi there
i'm completely noob at this repository
phpcode:

getUpdates(); print_r($updates); when i trying to use getUpdates method, i get this err: ```
Fatal error:  Uncaught exception 'TelegramBot\Api\HttpException' with message 'Conflict' in /path/to/vendor/vendor/telegram-bot/api/src/BotApi.php:261
Stack trace:
#0 /path/to/vendor/telegram-bot/api/src/BotApi.php(241): 
TelegramBot\Api\BotApi::curlValidate(Resource id #7)
#1/path/to/vendor/telegram-bot/api/src/BotApi.php(210): TelegramBot\Api\BotApi->executeCurl(Array)
#2 /path/to/vendor/telegram-bot/api/src/BotApi.php(453): TelegramBot\Api\BotApi->call('getUpdates', Array)
#3 /path/to/bot/bot.php(10): TelegramBot\Api\BotApi->getUpdates()
#4 {main}
  thrown in /path/to/vendor/telegram-bot/api/src/BotApi.php on line 261
``` what's wrong? is there any **COMPLETE** guide to use all methods?

Оплата в боте

Салам!
Будет ли методы приема оплаты в боте реализованы?
как скоро?
Чем помочь?

http post/get of other server when command is parsed

I want to execute simple http get or post when a command is parsed from user
the link of get page is on another server on raspberry pi computer with public ip and dns name

sending message works fine
here is my code

$bot->command('pi', function ($message) use ($bot) {
file_get_contents("http://1.2.3.4/test.php");

$bot->run();

file_get_content does not execute the get command

Obtain Last seen time

Hi. Is there a way to get the last seen time (or "online") from a user?

I don't find any related method.

Thanks.

sending a file as multipart/form-data

I ran into this problem
when sending a file as an inputFile instead of string - according to api docs (file_id as String to resend a photo that is already on the Telegram servers)
it wont work and generates an error.

and after a lot of reading and digging I finally found the problem.
simply the option of "multipart/form-data" is not passed to curl_setopt_array() inside the function call()
I think this option should be added to any api call that can send files.

Не работает метод ReplyKeyboardMarkup

$bot->command('start', function ($message) use ($bot) { $bot->sendMessage($message->getChat()->getId(), 'У меня есть команда /statusready /statusnotready'); $keyboard = new \TelegramBot\Api\Types\ReplyKeyboardMarkup(array(array("one", "two", "three")), true); // true for one-time keyboard $bot->sendMessage($chatId, $messageText, null, false, null, $keyboard); });
Пример, который не работает

how to get incoming message ?

is there anyway to handle incoming message without $bot->command i want to read incoming text and manually respond to it

Method sendChatAction not reflecting on apps

Hi, guys.

sendChatAction doesn't reflecting on Desktop app (MacOS) nor at Android App.
Code below only prints message (line 3), but nothing appear regarding line 1.

$api->sendChatAction($message->getChat()->getId(), 'find_location');
sleep(20);
$api->sendMessage($message->getChat()->getId(), $text, 'markdown');

Как обрабатывать callback вызовы?

Как обрабатывать callback вызовы?
например у такого кода


$keyboard = new \TelegramBot\Api\Types\Inline\InlineKeyboardMarkup(
            [
                [
                    ['callback_data' => '/answer', 'text' => 'Answer']
                ]
            ]
        );
        
$bot->sendMessage($chatId, $messageText, false, null, $keyboard);```

Adding event

I'm trying to add an event:
$bot->on(function($message) use ($bot){ $bot->sendMessage($message->getChat()->getId(), $answer); });

I want to this method works when bot receives any other messages except /commands.
But it doesn't work.

Is any idea what should I do?

Handle non JSON exceptions

I just had the issue with a non working Telegram server that sent back errors on every sendPhoto call. The HTTP server did not return a JSON structure but just:

<title>502 Bad Gateway</title>

502 Bad Gateway


nginx/1.6.2

In this case I had no access to the error data with the API because it would only return JSON fields. I think the easiest fix would be to test if the fields are present and if not, use the whole response as the error string.

Похоже, что getChosenInlineResult не работает

Всем привет. С inline query разобрался. Осталась часть, где можно получить сигнал о выбранном результате.

Вот пример кода:

$bot->on(function($update) use ($bot){

        // Сюда программа не доходит

    }, function (\TelegramBot\Api\Types\Update $update) {
        if($update->getChosenInlineResult() === null){
            return false;
        }
        return true;
    });

У всех так?

ReplyKeyboardMarkup fails with PHP7

PHP Notice: Object of class TelegramBot\Api\Types\ReplyKeyboardMarkup could not be converted to int in /telegram-bot/api/src/BotApi.php on line 304

How to send message based on text rather than command?

Hello
As the title, I have tried your example to get the specific command and reply.

$bot->command('ping', function ($message) use ($bot){
    $bot->sendMessage($message->getChat()->getId(), 'pong!');
});

But how can I send the message based on text rather than command?

Using is_integer breaks things on 32-bit systems

Today I've created a public channel with chat_id=-1001065544251. Posting to this channel via admin bot produces an exception:

Type: TelegramBot\Api\InvalidArgumentException
File: /var/www/safetext.me/vendor/telegram-bot/api/src/Types/Chat.php
Line: 92

I can confirm that is_integer(-1001065544251) === false on my system (Debian @ armv71). Developers on other 32-bit arm systems (like Raspberry Pi) or Windows 7 32-bit as local dev environment will have the same problem.

It is better to use is_numeric() in your case. Want me to do a PR?

InvalidArgumentException

Делаю так:

$bot = new \TelegramBot\Api\BotApi($token);

$bot->sendMessage($chatId, $messageText);

Сообщение отправляется, но получаю ошибку:

500 Internal Server Error - InvalidArgumentException
in vendor/telegram-bot/api/src/BaseType.php at line 42

Версия 2.2.3

Для чего chat_id преобразуется в int?

В методе sendMessage идет преобразование в integer

'chat_id' => (int) $chatId

Если убрать преобразование и в chat_id отправлять название чата (@chatname), то все прекрасно работает.

Call to a member function toJson() on array

Updated version to 2.2.8 and got PHP error:
"PHP message: PHP Fatal error: Call to a member function toJson() on array in ../vendor/telegram-bot/api/src/BaseType.php on line 71

In result answer from bot repeat each minute

Async connection opportunity

Can you please do opportunity to use async sockets in getUpdates? By the way, Guzzle have such thing ($client->async()). Its very important when you are using some daemons and some other telegram apis have such trick (but those api are bad at all).

botan.io error

when i enable botan.io by using key in constructor call Client(API_KEY, BOTAN_KEY);
i get loop on webHook. and exceptions in console

2017-01-04T19:25:26.465167+00:00 heroku[router]: at=info method=POST path="/bot.php" host=######################.herokuapp.com request_id=#################################### fwd="###.###.###.###" dyno=web.1 connect=0ms service=653ms status=500 bytes=182
2017-01-04T19:25:26.446538+00:00 app[web.1]: [04-Jan-2017 19:25:26 UTC] PHP Fatal error:  Uncaught Error: Call to a member function toJson() on array in /app/vendor/telegram-bot/api/src/BaseType.php:71
2017-01-04T19:25:26.446764+00:00 app[web.1]: Stack trace:
2017-01-04T19:25:26.446849+00:00 app[web.1]: #0 /app/vendor/telegram-bot/api/src/Botan.php(71): TelegramBot\Api\BaseType->toJson()
2017-01-04T19:25:26.446972+00:00 app[web.1]: #1 /app/vendor/telegram-bot/api/src/Events/EventCollection.php(67): TelegramBot\Api\Botan->track(Object(TelegramBot\Api\Types\Message), 'ping')
2017-01-04T19:25:26.447091+00:00 app[web.1]: #2 /app/vendor/telegram-bot/api/src/Client.php(87): TelegramBot\Api\Events\EventCollection->handle(Object(TelegramBot\Api\Types\Update))
2017-01-04T19:25:26.447178+00:00 app[web.1]: #3 /app/vendor/telegram-bot/api/src/Client.php(100): TelegramBot\Api\Client->handle(Array)
2017-01-04T19:25:26.447236+00:00 app[web.1]: #4 /app/web/bot.php(52): TelegramBot\Api\Client->run()
2017-01-04T19:25:26.447258+00:00 app[web.1]: #5 {main}
2017-01-04T19:25:26.447325+00:00 app[web.1]:   thrown in /app/vendor/telegram-bot/api/src/BaseType.php on line 71
2017-01-04T19:25:26.447432+00:00 app[web.1]: ##.##.##.## - - [04/Jan/2017:19:25:26 +0000] "POST /bot.php HTTP/1.1" 500 5 "-" "-

exception.txt

if i use constructor without BOTAN_KEY all work fine.

bot.php main code :

$bot = new Client(API_KEY, BOTAN_KEY); // exception
//$bot = new Client(API_KEY); //work fine

$bot->command('ping', function (Message $message) use ($bot) {
    $bot->sendMessage( $message->getChat()->getId(), 'pong!' );
});

$bot->run();

bot.php, composer.json, composer.lock in attached zip
botan_io_exceptiondata.zip

что то вообще не работает на laravel 5.3

command('ping', function ($message) use ($bot) { $bot->sendMessage($message->getChat()->getId(), 'pong!'); }); $bot->run(); echo "Good"; } catch (\TelegramBot\Api\Exception $e) { $e->getMessage(); } } } Выводит Good. Но бот ноль эмоций.

Download file [Feature]

Hi Ilya, any idea to add file download feature using curl to the script?
Like downloadFile();

exception TelegramBot\Api\InvalidArgumentException in BaseType.php:42

exception 'TelegramBot\Api\InvalidArgumentException' in /home/elraro/privado/bots/apod/vendor/telegram-bot/api/src/BaseType.php:42 Stack trace: #0 /home/elraro/privado/bots/apod/vendor/telegram-bot/api/src/BaseType.php(80): TelegramBot\Api\BaseType::validate(Array) #1 /home/elraro/privado/bots/apod/vendor/telegram-bot/api/src/BotApi.php(306): TelegramBot\Api\BaseType::fromResponse(Array) #2 /home/elraro/privado/bots/apod/apod.php(35): TelegramBot\Api\BotApi->sendMessage('@AstronomicPict...', 'Galaxies in the...')

my source of the bot:

`require_once "vendor/autoload.php";
$bot->sendMessage("@AstronomicPictureoftheDay", $title."\n\n".$explation."\n\n".$url);

try {
$bot = new \TelegramBot\Api\BotApi('MYTOKEN');

} catch (\TelegramBot\Api\Exception $e) {
echo $e;
echo $e->getMessage();
}`

AstronomicPictureoftheDay is a public channel.

Событие на сообщении

Как мне выполнить действия на лбом сообщении, которое не является командой?
Пробывал так, но не работает

$bot->on(function($message) use ($bot){
        file_put_contents("1.txt", print_r($message,true));
});

Как описать реакцию на сообщения?

Приветствую!
Коллеги, помогите пожалуйста, я затупил что-то:

Как описать реакцию бота на команды понятно:

$bot->command('ping', function ($message) use ($bot) {
    $bot->sendMessage($message->getChat()->getId(), 'pong!');
});

А как реагировать на простые сообщения?
Или как реагировать на картинку?

Заранее спасибо!

editMessageCaption and editMessageReplyMarkup do not work

editMessageCaption and editMessageReplyMarkup methods do not work with error 'Bad Request' from Telegram server.

May be this is because typo in BotApi.php ?
Both methods use Message::fromResponse($this->call('editMessageText' instead of 'editMessageCaption' and 'editMessageReplyMarkup'.

Get callback from InlineKeyboardMarkup

Hi all,
Please how can I get the callback of an InlineKeyboardMarkup button?. I have this piece of code and I would like to treat "myCall"

$bot = new \TelegramBot\Api\Client($API_KEY);
    $bot->command('start', function ($message) use ($bot) {
        $keyboard = new \TelegramBot\Api\Types\Inline\InlineKeyboardMarkup(
            [
                [
                    ['text' => 'link', 'url' => 'https://core.telegram.org'],
                    ['text' => 'Ping', 'callback_data' => "myCall"]
                ]
            ]
        );
        $msg = "Test";
        $bot->sendMessage($message->getChat()->getId(), $msg, null, false, null, $keyboard);
    });
$bot->run();

Thanks a lot.

ReplyKeyboardMarkup

Hey, this is a nice project. 👍

But I am a little bit confused, how to use ReplyKeyboardMarkup.
I found this solution, but it doesn't make sense:

$bot = new BotApi('xyz');
$keyboard = new ReplyKeyboardMarkup();
$keyboard->setKeyboard(array(array("one", "two", "three")));
$keyboard_json = json_encode(array("keyboard" => $keyboard->getKeyboard()));
$bot->sendMessage('123456789', "message", false, null, $keyboard_json);

How to use KeyboardMarkup or is this feature not implemented yet?

Pascal

Fatal error: Uncaught exception 'TelegramBot\Api\InvalidArgumentException'

Call Stack:
0.0010 127632 1. {main}() G:\Referenzen\NitradoForumToTelegramBot\index.php:0
0.0100 528640 2. TelegramBot\Api\BotApi->getUpdates() G:\Referenzen\NitradoForumToTelegramBot\index.php:9 // there i call getUpdates(0)
1.2441 537432 3. TelegramBot\Api\Types\ArrayOfUpdates::fromResponse() G:\Referenzen\NitradoForumToTelegramBot\vendor\telegram-bot\api\src\BotApi.php:408
1.2451 560272 4. TelegramBot\Api\BaseType::fromResponse() G:\Referenzen\NitradoForumToTelegramBot\vendor\telegram-bot\api\src\Types\ArrayOfUpdates.php:11
1.2461 560504 5. TelegramBot\Api\BaseType->map() G:\Referenzen\NitradoForumToTelegramBot\vendor\telegram-bot\api\src\BaseType.php:82
1.2461 609440 6. TelegramBot\Api\BaseType::fromResponse() G:\Referenzen\NitradoForumToTelegramBot\vendor\telegram-bot\api\src\BaseType.php:53
1.2461 610528 7. TelegramBot\Api\BaseType->map() G:\Referenzen\NitradoForumToTelegramBot\vendor\telegram-bot\api\src\BaseType.php:82
1.2481 634168 8. TelegramBot\Api\BaseType::fromResponse() G:\Referenzen\NitradoForumToTelegramBot\vendor\telegram-bot\api\src\BaseType.php:53
1.2481 634496 9. TelegramBot\Api\BaseType->map() G:\Referenzen\NitradoForumToTelegramBot\vendor\telegram-bot\api\src\BaseType.php:82
1.2481 634616 10. TelegramBot\Api\Types\Chat->setId() G:\Referenzen\NitradoForumToTelegramBot\vendor\telegram-bot\api\src\BaseType.php:51

JSON:

{
"update_id": 804548074,
"message": {
"message_id": 1,
"from": {
censored
},
"chat": {
"id": censored,
"title": "Nitrado Forum Updates",
"type": "supergroup"
},
"date": 1471098599,
"migrate_from_chat_id": censored
}

array(3) {
'id' =>
double(-1001072087709)

Thats why is_int fails

Bad Request при отправке "файлов" в каналы

При отправке сообщений в каналы не через ->sendMessage(), а, например, через ->sendPhoto(), вылетает HttpException с сообщением BadRequest.

Эта проблема из-за того, что $chatId принудительно кастуется в int.

Add MessageEntity type

{
    "update_id": 427481276,
    "message": {
        "message_id": 731,
        "from": {
            "id": 237163232,
            "first_name": "Stepan",
            "last_name": "Ipatev",
            "username": "DeLuxis"
        },
        "chat": {
            "id": 237163232,
            "first_name": "Stepan",
            "last_name": "Ipatev",
            "username": "DeLuxis",
            "type": "private"
        },
        "date": 1465899739,
        "text": "/users",
        "entities": [
            {
                "type": "bot_command",
                "offset": 0,
                "length": 6
            }
        ]
    }
}

Doc MessageEntity

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.