GithubHelp home page GithubHelp logo

0xh / php-telegram-cli-client Goto Github PK

View Code? Open in Web Editor NEW

This project forked from zyberspace/php-telegram-cli-client

0.0 1.0 0.0 83 KB

php-client for telegram-cli

License: Mozilla Public License 2.0

PHP 100.00%

php-telegram-cli-client's Introduction

###Update 2015-12-23:

As i currently have no time to work on this project anymore and telegram released its own bot-api, there won't be many new updates to this project in the future. I will try to go through all currently open issues so there is nothing left in the issue section anymore (even if i need to close some things with wontfix).
If someone wants to takeover this project i am willing to give him push-rights or link to his fork on github/packagist.

If you want to port your project to the new bot-api take a look at the unofficial php-sdk.


zyberspace/telegram-cli-client

php-client for telegram-cli

Packagist Codacy License

Requirements

  • a running telegram-cli listening on a unix-socket (-S) or a port (-P) and returning all answers as JSON (--json).
    Needs to be configured already (phone-number, etc.).
  • php >= 5.3.0

Usage

###Setup telegram-cli telegram-cli needs to run on a unix-socket (-S) or a port (-P), so telegram-cli-client can connect to it. All answers need to be returned as JSON (--json).
You should also start it with -W so the contact-list gets loaded on startup.
For this example we will take the following command (execute it from the dir, where you installed telegram-cli, not the php-client), -d lets it run as daemon.:

./bin/telegram-cli --json -dWS /tmp/tg.sck &

If you run the telegram-cli under another user than your php-script and you are using linux, you need to change the rights of the socket so that the php-script can access it (thanks to dennydai for this!).
For example, add both to a telegram-group and then do

chown :telegram /tmp/tg.sck
chmod g+rwx /tmp/tg.sck

If you never started telegram-cli before, you need to start it first in normal mode, so you can type in your telegram-phone-number and register it, if needed (./bin/telegram-cli).

To stop the daemon use killall telegram-cli or kill -TERM [telegram-pid].

###Install telegram-cli-client with composer In your project-root:

composer require --update-no-dev zyberspace/telegram-cli-client

Composer will then automatically add the package to your project requirements and install it (also creates the composer.json if you don't have one already).
If you want to use the discovery-shell, remove the --update-no-dev from the command.

###Use it

require('vendor/autoload.php');
$telegram = new \Zyberspace\Telegram\Cli\Client('unix:///tmp/tg.sck');

$contactList = $telegram->getContactList();
$telegram->msg($contactList[0]->print_name, 'Hey man, what\'s up? :D');

###Use it with the discovery-shell A really easy way to learn the api is by using the embedded discover-shell. You need to install the dev-dependencies for this (composer update --dev).

$ ./discovery-shell.php
-- discovery-shell to help discover a class or library --

Use TAB for autocompletion and your arrow-keys to navigate through your method-history.
Beware! This is not a full-featured php-shell. The input gets parsed with PHP-Parser to avoid the usage of
eval().
> $telegram->getContactList();
array(13) {
  [...]
}
> $telegram->msg('my_contact', 'Hi, i am sending this from a php-client for telegram-cli.');
true

Documentation

To create the docs, just run phpdoc in the the project-root.
An online-version is available at phpdoc.zyberware.org/zyberspace/telegram-cli-client.

Supported Commands

You can execute every command with the exec()-method from the RawClient-class, but there are also several command-wrappers available (doc-link) that you should prefer to use (see the example.php).
If you prefer to only use your own command-wrappers instead, just extend the RawClient-class (takes care about the socket-connection and has some helper-methods).

In your command-wrappers or if you use exec() directly, please don't forget to escape the peers (contacts, chat-names, etc.) with escapePeer() and all string-arguments with escapeStringArgument() to avoid errors.

API-Stability

The api of the commands wrappers will definitely change in the future, for example getHistory() only returns the raw answer of the telegram-cli right now and is not really useful. Therefore you should not use this in production yet.

If you still want to use this in your project, make sure you stay at the same minor-version (~0.1.0 or 0.1.* for example).

License

This software is licensed under the Mozilla Public License v. 2.0. For more information, read the file LICENSE.

php-telegram-cli-client's People

Contributors

zyberspace avatar sikifn avatar yorch81 avatar

Watchers

 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.