ربات تلگرام & شبکه

توضیحات

ربات های تلگرام در یک توضیح ساده همان حساب های تلگرامی میباشند که توسط یک نرم افزار کاربری میشوند- و نه توسط اشخاص- و اغلب تمام ویژگی ها را دارا میباشند. آنها میتوانند هرکاری انجام دهند – آموزش٬ بازی٬ جستجو٬ انتشار اطلاعیه و اخبار٬ یادآوری٬ ارسال مطالب٬ ادغام با دیگر سرویس ها و یا حتی ارسال دستورات به اینترنت اشیاء.

این افزونه به شما این امکان را میدهد تا بر روی وب سایت وردپرس خود یک ربات تلگرام ایجاد نمایید و محتوای آن را برای مشترکین خود و یا کانال تلگرامی که مدیر آن هستید بفرستد.

BotPress.org ~ ما را دنبال کنید کانال تلگرامی

قابلیت های ربات

  • پاسخ های فوری (ما از وب هوک های امن استفاده میکنیم)
  • کیبورد ها و دکمه های خطی پشتیبانی شده است.
  • Instant send of new posts/pages/post_types with configurable template
  • پشتیبانی از انتشار برنامه ریزی شده ی پست ها
  • Supports chats, groups, supergroups and channels
  • ایجاد دستورات نامحدود همراه با پاسخ های سفارشی (سازگار با کدهای کوتاه و php)
  • مشترکین خود را ببینید و مدیریت کنید.
  • Get and dynamically reply to users geolocation with harvesine algorithm
  • ارسال پیام دستی
  • برنامه های کاربرید اختصاصی ایجاد کنید به صورت /$command $var1 $var2
    (برای برنامه نویسان)
  • افزودن php به /$commands (نیاز مند به افزونه [Insert Php](https://wordpress.org/plugins/insert-php
  • با Zapier یکپارچه سازی شد! شما میتوانید میان ربات خود و سرویس هایی که استفاده میکنید یکپارچگی ایجاد کنید.

قابلیت های کانال تلگرام

  • محتوای خود را به کانال تلگرامی خورد بفرستید.

نکته: برای ارسال پیام در شبکه ربات شما باید مدیر شبکه شما باشد.

:هشدار بخاطر محدودیت های تلگرام برای مدیریت یک ربات تلگرامی شما نیاز به SSL گواهیدارید. اگر گواهی ندارید،botpress.org در تنظیمات افزونه مشخص کنید. این یک ویژگی رایگان است که اطلا عاتی را به سرور ما ارسال خواهد کرد.

Zapier

سرویس Zapier اتوماسیون فعالیت ها میان برنامه های کاربردی را بسیار ساده میکند. برای مثال:

  • ایجاد مطلب جدید بر روی سایت را از طریق RSS به کاربران ارسال کنید.
  • وضعیت آب و هوا را به صورت روزانه برای مشترکین خود بفرستید
  • هر زمانی کی عکس بر روی اینستاگرام قرار دادید کاربران را مطلع کن.
  • و خیلی بیشتر… با پشتیبانی بیش از 400 برنامه Zapier

مثال ها

  • CosenzApp_bot (ایتالیایی) – راهنمایی برای Cosenza city

ترجمه‌ها

شما میتوانید ترجمه خود را اینجا وارد نمایید. translate.wordpress.org

اگر میخواهید مترجم به زبان خود باشید نام کاربری و کد زبان خود را (برای مثال: fa-IR) به آدرس ایمیل milesimarco@outlook.com ارسال نمایید.

پشتیبانی

نیاز به کمک در ساخت ربات و یا سوالی دیگری دارید؟ یک نگاهی به سوالات متدوال ما بیاندازید و یا درخواست پشتیبانی کنید. اگر شما این افزونه را دوست دارید لطفا یک بررسی برای ما بنویسید و به ما امتیاز دهید و یا یک بازخورد برای ما بنویسید تا بتوانیم آن را بهتر کنیم.

Screenshots

  • داشبورد افزونه
  • لیست اعضاء
  • لیست دستورات
  • پاسخ دهنده های خودکار
  • یکپارچه سازی با Zapier
  • قابلیت های افزونه
  • پاسخ های پویا و دکمه های خطی به عنوان مثال IcBrendola_bot
  • مثال از CosenzApp_bot
  • انتشار پست ( همه انواع پست ها)

نصب

این بخش نحوه نصب و راه اندازی افزونه را توضیح میدهد.

  1. دایرکتوری telegram-bot را در /wp-content/plugins/ بارگذاری کنید.
  2. افزونه را از داخل منوی افزونه ها فعال کنید.
  3. رفتن به تنضیمات تلگرام
  4. در مسیر مراحل پیش بروید و گزینه به روز رسانی را انتخاب نمایید.

سوالات متداول

Documentation is available on www.botpress.org/docs

چطوری یک ربات بسازم؟

www.botpress.org/docs/telegram/how-to-create-a-bot

چگونه باید به کاربران اجازه عضویت بدهم؟

www.botpress.org/docs/telegram/how-do-users-subscribe

زاپیر چیست و چگونه باید آن را با این افزونه ادغام کنم؟

www.botpress.org/docs/telegram/zapier-integration

How to enable debug mode?

If you are a developer, or just want a more complete “Telegram > Log” enable WP_DEBUG mode.
The plugin debug mode also allows to explore Telegram users and groups as standard posts. This let you to check custom fields for each users and modify them in real time. You’ll notice a new column (= Telegram id for the user) in Subscribers and Groups page.
We don’t suggest to keep WP_DEBUG if not for testing purposes.

How to set up dynamic replies?

The best way to integrate and add functions is to create another plugin.
For example, create a file called telegram-bot-custom.php and upload it to wp-content/plugins, then activate it.
Write the file as follows:

<?php
/*
Plugin Name: Telegram Bot & Channel (Custom)
Description: My Custom Telegram Plugin
Author: My name
Version: 1
*/

add_action('telegram_parse','telegramcustom_parse', 10, 2);

function telegramcustom_parse( $telegram_user_id, $text ) {
    $plugin_post_id = telegram_getid( $telegram_user_id );

    if ( !$plugin_post_id ) {
        return;
    }

    /*
    Here is the dynamic processing and how to reply.
    You can:
    - use if, switch and everything that works in php
    - check if $text is made of multiple words (create an array from $text)
    - customize and code other actions (ex. create WordPress post is $telegram_user_id is your id)
    */

    if ( $text == '/command') {
        telegram_sendmessage( $telegram_user_id, 'Oh, yes you typed /command');
    }

    return;
}

?>
How to set up dynamic keyboards?

You can send custom keyboards directly in php. Every keyboard can be set only when you send a message, and is kept in the client side until another keyboard is sent (in another message). You can also change this behaviour by setting the $one_time_keyboard true or false.

telegram_sendmessage( $telegram_user_id, 'Hello from the other side!'); //Message with no keyboard (or with default one if set in plugin options)
telegram_sendmessage( $telegram_user_id, 'Hello from the other side!', telegram_build_reply_markup( '11,12,13;21,22', true )); //Message with custom keyboard

Here is the details of telegram_build_reply_markup (an array is returned):
telegram_build_reply_markup(
‘11,12,13;21,22’, //The keyboard template (eg. 2 row, 3 columns for the first one and two columns for the second one
true, // $one_time_keyboard (optional) (default false = kept until a new keyboard is sent) (true = kept until the user send something to the bot)
true // $resize_keyboard (optional) (default true)
);

You can also alter keyboards for commands defined in the admin area. Start from the previous custom plugin created, and add the following filter:

add_filter( 'telegram_get_reply_markup_filter', 'telegram_get_reply_markup_filter_custom', 1 );

function telegram_get_reply_markup_filter_custom( $id ) {
    if ( $id ) {
        switch ( $id ) {
            case 7: //Your command ID (found in the url while editing the command)
                telegram_log('####', $id, 'custom keyboard'); //Useful for debug
                return array(
                    'keyboard' => array(array('Top Left', 'Top Right'),array('Bottom')),
                    'resize_keyboard' => true, //true or false (suggested: true)
                    'one_time_keyboard' => true //true or false
                    );            
            default:
                return;
        }
    }
}
How to get user location?

It’s easy, with harvesine algorithm (one-point radius) or standard geolocation (4-points).
These snippets only cover the harvesine algorithm, that is simple and supported by the plugin. To use the standard 4-points geolocation it’s enough to do some php-calc with basic if-then structures.

You can start from the previous custom plugin created, and add the following action:

add_action('telegram_parse_location','telegramcustom_c_parse_location', 10, 3);

function telegramcustom_c_parse_location ( $telegram_user_id, $lat, $long  ) {

  if ( telegram_location_haversine_check ( 45.85, 9.70, $lat, $long, 20 ) ) {
    telegram_sendmessage( $telegram_user_id, 'Inside the radius');
  }

}

The examples sends a “Inside the radius” message when the user is inside the 20-meters radius centered in 45.85 Lat, 9.70 Long.

You have two developer functions to use:

//Check if point is within a distance (max_distance required)
$boolean = telegram_location_haversine_check ( $latitudeFrom, $longitudeFrom, $latitudeTo, $longitudeTo, $max_distance, $min_distance = 0, $earthRadius = 6371000);

//Calculate the distance
$int = telegram_location_haversine_distance ( $latitudeFrom, $longitudeFrom, $latitudeTo, $longitudeTo, $earthRadius = 6371000);

The first function returns a boolean (true/false) depending on given parameters. Please note that $min_distance and $earthRadius are optional.
The second one returns a int (in meters) of the distance. $earthRadius optional.

Both the functions calculates distances on meters. If you want another type of result, just change the $earthRadius.

How to get user photos?

We’ve written simple functions to let developers build everything.
Photos are saved in /wp-content/uploads/telegram-bot/’.$plugin_post_id.’/’.$file_name where $plugin_post_id is the custom post type id associated with the Telegram subscription (ex. ’24’) and $file_name is time().$extension

<?php
/*
Plugin Name: Telegram Bot & Channel (Custom)
Description: My Custom Telegram Plugin
Author: My name
Version: 1
*/

add_action('telegram_parse_photo','telegramcustom_parse_photo', 10, 2);

function telegramcustom_parse_photo ( $telegram_user_id, $photo  ) {

 $plugin_post_id = telegram_getid( $telegram_user_id );

 if ( !$plugin_post_id ) {
  return;
 }

 /*
  Here is the dynamic processing and how to reply.
  You can:
   - use if, switch and everything that works in php
   - check if $text is made of multiple words (create an array from $text)
   - customize and code other actions (ex. create WordPress post is $telegram_user_id is your id)
 */

 /*
   $photo[2]['file_id'] is only one of available sizes. You should make sure that this size exist, or check for another size.
   $photo[1]['file_id'] has lower resolution
 */
 $url = telegram_download_file( $telegram_user_id, $photo[2]['file_id'] ); //Fetch and save photo to your server

 if ( $url ) { //$url is the local url because photo is already saved

  //You can save the entry in your db
  global $wpdb;
  $arr = array( 'telegram_id' => $telegram_user_id, 'plugin_post_id' => $plugin_post_id, 'url' => $url );

  $wpdb->insert(
   $wpdb->prefix . 'your_table_name_that_must_already_exist', $arr, array( '%s' )
  );

  //Or save it as custom field and use it for a Finite State Machine
  update_post_meta( $plugin_post_id, 'telegram_custom_last_photo_received', $url );

  telegram_sendmessage( $telegram_user_id, 'Photo received. Thank you!');
}

?>

Another example, that is a “emergency bot” created for the mid-italy earthquake (24 august 2016) is available on GitHub

بررسی‌ها

10 نوامبر 2016
Still many things to do, but there is no more powerful alternative in WP plugin directory.
3 سپتامبر 2016
Great plugin, nice to see documentation is growing
3 سپتامبر 2016
Simple UI but effective functionality.
خواندن تمامی 15 بررسی‌

توسعه دهندگان و همکاران

“ربات تلگرام & شبکه” نرم افزار متن باز است. افراد زیر در این افزونه مشارکت کرده‌اند.

مشارکت کنندگان

“ربات تلگرام & شبکه” has been translated into 5 locales. Thank you to the translators for their contributions.

ترجمه “ربات تلگرام & شبکه” به زبان شما.

علاقه‌ مند به توسعه هستید؟

Browse the code, check out the SVN repository, or subscribe to the development log by RSS.

تغییرات

2.2.1 15.06.2019

  • Tested with latest WP version

2.2 05.09.2017

  • Tested with WP4.8

2.1.1 4.03.2017

  • Added %CHAT_ID% placeholder for post template (useful for Google Analytics campaign)
  • Fixed bug with publish_post when using %EXCERPT% (thanks @jsbmand)
  • بهینه سازی های جزئی

2.0.7 7.02.2017

  • Fixed bug when parsing content containing “x”

2.0.6 13.01.2017

  • Fix: possibile problems with future_post_publish when hooking “telegram_send_post”
  • Improved perfomance

2.0.4 29.12.2016

  • Fix: markdown parameter was incorrectly added while sending to channel (error 400)

2.0.3 21.12.2016

  • Added filters to publish_post and publish_future_post to allow plugin’s customizations via actions
  • Fixed bug that printed a false error “incorrect parameters due to: HTTP/1.1 200 OK” in log
  • Fixed bug causing errors while sending to groups in some cases

2.0.1 16.12.2016

  • Fixed bug with widget channel link – Thanks @aghorbanmehr
  • Improved widget style
  • Improved main panel
  • Added localhost warning in plugin options (plugin can’t receive messages in offline environments)
  • Improved readme.txt

2.0 14.12.2016

  • Follow our new Telegram channel telegram.me/botpressorg
  • Tested with WP 4.7
  • This is a major change that requires attention: info www.botpress.org/?p=2021
  • New “bypass” platform for non-SSL users: www.botpress.org. Account registration no-longer required because it’s now done automatically by the plugin (as opt-in service)
  • Added inline buttons support
  • Added targeting system to send messages differently between users/groups/channel
  • Added widget to let users follow your bot/channel
  • Improved speed, filters and actions
  • Bugfixes and UI improvements

1.8.3 5.12.2016

  • Bugfix
  • New PHP filters for subscriber and group views (check source code to find more)

1.8.1 16.11.2016

  • Regression bugfix: new broadcast system didn’t work with custom post types
  • Minor performance boost

1.8 15.11.2016

  • Posts broadcast completely rewritten due to occasional bugs
  • Scheduled posts broadcast added
  • Version 2.0 in progress: stay tuned!

1.7.1 16.09.2016

  • Improved telegram_sendmessage() with ability to define custom keyboards via php
  • Added function to build a reply_markup that can be used as third parameter in telegram_sendmessage()
  • More dev-info in our faqs!

1.7 14.09.2016

  • Added php function to get and save incoming files. More info in our faqs!
  • We’re planning a free server upgrade for non-SSL users. Stay tuned: the best is yet to come!
  • تغییرات جزئی

1.6.1 27.08.2016

  • Added nopaging => true in “telegram_sendmessagetoall” function to force website post_limit override

1.6 26.08.2016

  • Added harvesine algorithm for radial geolocation. Check the faqs for more informations
  • Added a complete debug mode for developers to extend the plugin via custom fields. Check the faqs for more informations
  • درمورد تغییرات بخوانید

1.5.2 25.08.2016

  • Fix for some persian environments
  • بهینه سازی در علکرد
  • Switched debug_mode trigger. Now you have to enable WP_DEBUG if you want to fire the plugin debug mode.

1.5.1 23.08.2016

  • Critical fix for “Insert_PHP” parsing (and similar) caused by oembed conflict (thanks @websurfertech)

1.5 23.08.2016

  • Added instant send when publishing new content with configurable template
  • This version changes the sendmessage function because WordPress now turned post links to title automatically.
  • Please test your dynamic commands if you extended the plugin via php
  • بهینه سازی های جزئی

1.4.2 17.08.2016

  • Minor bugfix
  • بهینه سازی های جزئی
  • WP 4.6 compatibility check

1.4.1 06.08.2016

  • Fixed error while parsing placeholders for supergroup

1.4 07.07.2016

  • Timeout prevention while sending to many users (Telegram doesn’t support bulk actions)
  • Please note that Telegram broadcasting is better with channels. You can try also indoona, indoona, another open chat (made in Italy) that is better and faster when sending multiple messages at once. indoona allows you to keep your followers and fans always up to date with your WordPress site directly from their chat!
  • Bugfix in parsing
  • Entries are now deleted instead of being deactivated (timeout prevention)
  • Old entries will be deleted when approriate error code is received from Telegram (as before when deactivating)

1.3.18 6.07.2016

  • Improved message_id check to avoid Telegram loops

1.3.17 21.05.2016

  • Removed message_id check due to Telegram changes – investigating now
  • Fixed reply_markup creation due to Telegram changes – should be correct now

1.3.16 22.04.2016

  • Bugfix for supergroups message_id

1.3.15 03.04.2016

  • Added supergroup support
  • Tested with WP4.5

1.3.14 26.02.2016

  • another bugfix for persian WP Jalali compatibility

1.3.13 26.02.2016

  • Fixed bug with WP-Jalali when persian numbers conversion enabled

1.3.12 21.02.2016

  • Added return values (true/false) to telegram_sendmessage($args)

1.3.11 15.02.2016

  • تصحیح ثبت ورژن غلط بر روی پیشخوان اصلی

1.3.10 14.02.2016

  • بهینه سازی های جزئی
  • بهینه سازی در علکرد

1.3.9 13.02.2016

  • تصحیح برخی هشدار های PHP

1.3.8 05.02.2016

  • اضافه شدن چک برای جلوگیری از خروج پیام خالی

1.3.7 02.02.2016

  • افزوده شدن چک بر روی message_id برای جلوگیری از حلقه در ارسال پیام
  • افزوده شدن تابع sleep برای جلوگیری از رسیدن به حداکثر استفاده از API تلگرام در زمان راسال پیام های گروهی

1.3.6 01.02.2016

  • بهینه سازی در عملکرد و جلوگیری از ایجاد حلقه در انجام عملیات

1.3.5 28.01.2016

  • اکنون ارسال دستی کاربران غیر فعال را تشخیص میدهد و آنها را غیر فعال میکند.
  • تغییرات جزئی
  • برطرف کردن مشکل در زمان ارسال پیام به گروه

1.3.4 24.01.2016

  • افزوده شدن فیلتر قابل دستکاری telegram_parse_location .

1.3.3 13.01.2016

  • مقیاس پذیری بهتر برای ستون های مدیریت
  • بهینه سازی های جزئی

1.3.2 13.01.2016

  • تصحیح رمزگذاری columns.php
  • تغییرات جزئی

1.3 8.01.2016

  • افزودن صفحه کلید سفارشی برای دستورات
  • اضافه شدن سرویس مکان یابی- مستندات را در wptele.ga ببینید

1.2 7.01.2016

  • افزوده شدن صفحه کلید سفارشی
  • افزوده شدن نام مستعار برای دستورات (فقط در فیلد تیتر آن را به صورت جدا شده با کاما بنویسید)
  • بهینه سازی های جزئی

1.1.1 7.01.2016

  • تغییرات جزئی

1.1 26.12.2015

  • قابلیت پشتیبانی از کانال های تلگرامی افزوده شد.
  • سیستم ترجمه جدید افزوده شد. لطفا در اینجا همکاری کنید : translate.wordpress.org
  • بهینه سازی های جزئی

1.0.2 21.11.2015

  • لاگ (ثبت وقایع) بخش دیباگ (عیب یابی) که به صورت اشتباه فعال شده بود غیر فعال شد.
  • بهینه سازی های جزئی در سیستم لاگ گیری (ثبت وقایع)
  • بهینه سازی های متعدد.

1.0 19.11.2015

  • تصحیح باگ ها و بهینه سازی های متعدد.
  • قابلیت پستیبانی کامل از گروه افزوده شد. (اکنون ربات میتواند در گروه ها عضو شود)
  • اضافه شدن نمایش جداگانه برای گروه ها.
  • بهینه سازی پیشخوان افزونه.
  • افزوده شدن امکان نوشتن پیام start/ و stop/ سلیقه ای.
  • افزوده شدن اطلاع رسانی در صفحه مدیریت.

0.13 11.11.2015

  • اکنون /command و /command test یک عمل انجام میدهند. ولی در خصوص /commandtest اینطور نیست.
  • این قابلیت این امکان را میدهد تا عملیات پیشرفته تری را با پارامترها انجام دهید.

0.12 11.11.2015

  • افزوده شدن تابع telegram_get_data_array() برای برنامه نویسان.
  • درمورد تغییرات بخوانید
  • تغییرات جزئی

0.11 09.11.2015

  • مشکلی که در زمان داشتن بیشتر از ۱۰ دستور در برخی سایت ها پیش می آمد حل شد.
  • اکنون اگر یک کاربر نام٬ نام خانوادگی٬ نام کاربری خود را در تلگرام تغییر دهد/ اضافه کند و یا پاک کند در لیست اعضای شما تغییرات ثبت خواهد شد.
  • پیشخوان اصلی بهتر با RSS
  • افزوده شدن شمارنده ارسال پیام.
  • سبک جدید نمایش برای کاربران غیرفعال در لیست اعضاء.
  • بهینه سازی های جزئی

0.10 24.10.2015

  • افزوده شدن درک کد های کوتاه (شورت کد). این شامل درک کد های php نیز میشود البته در صورتی که افزونه مربوط به php مانند Insert Php نصب باشد.
  • باگ های رفع شده
  • بهینه سازی های جزئی

0.9 23.09.2015

  • افزوده شدن قابلیت ادغام با سرویس زاپیر. (نسخه بتا) – برای اطلاعات بیشتر سوالات متدوال را ببینید.
  • تغییرات جزئی
  • افزوده شدن قابلیت استفاده از کد های نشانه گذاری (BOLD, ITALIC, URL)

0.8 15.09.2015

  • لیست تغییرات مشترکین
  • افزوده شدن پشتیبانی از دستور /stop
  • اصلاح خطا ها ( باگ ها) + بهینه سازی افزونه

0.7.3 – 14.09.2015

  • بهینه سازی تابع ارسال پیام

0.7.2 – 13.09.2015

  • دستورات دیگر به حروف کوچک و بزرگ حساس نیستند.
  • مشکل عدم دریافت پست های دارای عکس بند انگلشتی بر طرف شد

0.7.1 – 13.09.2015

  • حل مشکل سازگاری با PHP5.3

0.7 – 13.09.2015

  • افزوده شدن قابلیت ارسال پیام
  • حل مشکل آسیب پذیری در مقابل حمله XSS (با تشکر از Roman Ananyev)

0.1 – 07.09.2015

  • اولین ارسال