Giter Club home page Giter Club logo

telegram-api's Introduction

Latest Stable Version Build Status Scrutinizer Code Quality Code Coverage License

Telegram API

This is a complete PHP7 bot API implementation for Telegram implementing the totality of Bot API v2.3.1

Known bugs / Open issues

None at the moment. If you find any, feel free to submit a PR or create an issue!

About this class

  • Enables you to anything supported by the Telegram Bot API: messages, stickers, location, inline bots and any other supported method via PHP to a Telegram user (either direct conversation, channel, group or supergroup).
  • Respects and implements the default types and methods made by Telegram itself. Have any doubts about any method? Just check the original documentation, this implementation will not differ too much.
  • Doesn't need any dependency, except for Guzzle, which you can inyect if you already use it elsewhere.
  • Full inline bots support!

Installation

The preferred method is composer, so add the following to your composer.json:

{
  "require": {
    "unreal4u/telegram-api": "~2.3"
  }
}

Upgrading v1.x to v2

Please check the following Wiki page if you have to upgrade from v1 to v2.

General usage

Basic usage example:

use \unreal4u\TelegramAPI\TgLog;
use \unreal4u\TelegramAPI\Telegram\Methods\SendMessage;

$sendMessage = new SendMessage();
$sendMessage->chat_id = A_USER_CHAT_ID;
$sendMessage->text = 'Hello world!';

$tgLog = new TgLog(BOT_TOKEN);
$message = $tgLog->performApiRequest($sendMessage);

With the SendMessage() object, you can create a message to be sent through the TgLog object.
All other functionality is based upon this behaviour, so every other method is very similar: you instantiate an object, pass that object to TelegramLog->performApiRequest() and you'll get the native Telegram response back as an object. Different methods return different object types.

Please refer to the examples directory to view examples of some of the implemented methods, including inline bots.

For examples of actual code that works in a production environment, please refer to my other repo: https://github.com/unreal4u/telegram-bots

Getting updates via Webhook

Please check the following wiki section for more information on this.

Inline bots

Please checkout the special wiki page about inline bots.

Extra requirements

If you want to use this package, you'll need a bot API key. Check the following documentation for more instructions on that.

Getting everything started up

The most difficult thing to do when performing an action with the Telegram API is to get the chat_id, which is the actual conversation window the bot talks to. You can execute the GetUpdates() method in order to get this chatId. Note that there are some caveats on this, so you may be better out with the SetWebhook() method instead.

Development

Semver

I will try my best to respect Semantic Versioning.
That being said, the first stable release is v1.0.0, from there on no mayor BC changes will occur unless we update the major.

Want to colaborate?

Colaborations are very welcome! Check this Wiki page out for more information that will make the development easier!

Contact the author

I actually don't use Telegram. Nah, kidding, you can contact me at t.me/unreal4u. Another great way to help is to simply create an issue or a pull request!

Bugs related with security

Please handle these responsibly! If you happen to find one, please contact the author privately.

Special thanks to

telegram-api's People

Contributors

unreal4u avatar azacchino avatar

Watchers

James Cloos avatar Artem Zinoviev avatar

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.