رفتن به مطلب

آموزش کنترل بات تلگرام و ساخت بات مدیریت کانال و گروه


میلاد

ارسال‌های توصیه شده

سلام امیدوارم حالتون خوب باشه


این اولین اموزش منه - البته نمیشه اسمشم گذاشت آموزش در مقابل آموزش های دوستان هیچ محسوب میشه و اینکه امیدوارم اونقدرا هم ضایع نباشه


 


بخش اول آموزش :


 


خب میریم سراغ بات تلگرام


 سایت  تلگرام متدهایی رو واسه کنترل بات انتشار داده که ما به کمک اون میتونیم بات رو توی بیسیک کنترل کنیم


 


https://core.telegram.org/bots/api


 


ابتدا  به کمک https://telegram.me/botfather یه بات میسازیم 


 


سپس توکن اون رو توی url  زیر اضافه میکنیم




sampel:
https://api.telegram.org/bot261944077:AAENGD8m7xFKbA17H19cUy9h1eobEX9DUVk/getme
https://api.telegram.org/botTOKEN/getme

متد getme:


 


اطلاعات بات رو بصورت جیسون به ما برمیگردونه به صورت زیر - البته این هم در نظر بگیرید که خروجی تمامی api های تلگرام به صورت جیسون هست .


 



 


{"ok":true,"result":{"id":261944077,"first_name":"elecroidbot","username":"pishnokbot"}}



خب اگه توجه کنید یوزنیم و فرست نیم بات رو به همراه ایدی اون به ما داده .


 


متد getUpdate :



https://api.telegram.org/bot261944077:AAENGD8m7xFKaA37HC9cUy9h1eobEX9DUVk/getUpdates

توی این بات ما میتونیم تمامی رویداد هایی چون ارسال پیام - دریافت پیام - ارسال استیکر و ...


رو به صورت مانیتورینگ دریافت کنیم و یا اینکه رو اون ها پردازش هایی انجام بدیم





{"ok":true,"result":[{"update_id":604899858,
"message":{"message_id":628172,"from":{"id":101466331,"first_name":"###ARIANA###","username":"AMNEM120"},"chat":{"id":-1001003834789,"title":"\u062e\u0648\u062f\u0645\u0648\u0646\u06cc \ud83d\ude09","type":"supergroup"},"date":1469362819,"reply_to_message":{"message_id":628171,"from":{"id":131159306,"first_name":"\u2665z@1-1r@\u2665","last_name":"Georgia\u2665","username":"Zahrakarimi1378"},"chat":{"id":-1001003834789,"title":"\u062e\u0648\u062f\u0645\u0648\u0646\u06cc \ud83d\ude09","type":"supergroup"},"date":1469362800,"text":"\u0645\u0646\u0645 \u062e\u0648\u0634\u0628\u062e\u062a\u0645.\u06a9\u062f\u0648\u0645 \u0634\u0647\u0631\u061f"},"text":"\u06a9\u0631\u0645\u0627\u0646\u0634\u0627\u0647"}},{"update_id":604899859,
"message":{"message_id":628173,"from":{"id":131159306,"first_name":"\u2665z@1-1r@\u2665","last_name":"Georgia\u2665","username":"Zahrakarimi1378"},"chat":{"id":-1001003834789,"title":"\u062e\u0648\u062f\u0645\u0648\u0646\u06cc \ud83d\ude09","type":"supergroup"},"date":1469362832,"reply_to_message":{"message_id":628172,"from":{"id":101466331,"first_name":"###ARIANA###","username":"AMNEM120"},"chat":{"id":-1001003834789,"title":"\u062e\u0648\u062f\u0645\u0648\u0646\u06cc \ud83d\ude09","type":"supergroup"},"date":1469362819,"text":"\u06a9\u0631\u0645\u0627\u0646\u0634\u0627\u0647"},"text":"\u0627\u0648\u06a9"}},{"update_id":604899860,
"message":{"message_id":628174,"from":{"id":119963916,"first_name":"\u306e\u00a3\u0141\uff91\u042f\uff91"},"chat":{"id":-1001003834789,"title":"\u062e\u0648\u062f\u0645\u0648\u0646\u06cc \ud83d\ude09","type":"supergroup"},"date":1469362881,"text":"\u0633\u0644\u0627\u0645"}},{"update_id":604899861,
"message":{"message_id":628175,"from":{"id":131159306,"first_name":"\u2665z@1-1r@\u2665","last_name":"Georgia\u2665","username":"Zahrakarimi1378"},"chat":{"id":-1001003834789,"title":"\u062e\u0648\u062f\u0645\u0648\u0646\u06cc \ud83d\ude09","type":"supergroup"},"date":1469362888,"text":"\u0633\u0644\u0627\u0645\ud83d\udc4b"}},{"update_id":604899862,


خب واسه اینکه بتونید جیسون رو بهتر متوجه بشید - اطلاعات دریافتی رو توی این سایت


http://jsonviewer.stack.hu/


قرار بدید و سپس بر روی viewer کلیک کنید تا اطلاهات به صورت دسته بندی شده قابل نمایش باشن.


 


1api.PNG


 


 


واسه گرفتن اخرین رویداد اپدیت میتونید از api زیر استفاده کنید



https://api.telegram.org/bot261944077:AAENGD8m7xFKbA37HCycUy9h1eobEX9DUVk/getUpdates?offset=-1

افست اخرین مقدار ارسالی رو برمیگردونه


 


متد بعدی sendMessage :


 


توی این متد میتونید به خصوصی افرادی که بات رو استارت کردن یا توی گروه ها یا کانال پیام مد نظر خودتون رو ارسال کنید



https://api.telegram.org/bot213608944:AAFjFe03BpFSGmiYHCBfYkqZfbCA_x7ya3o/sendMessage?text=ANSWERCENTER&chat_id=160460920

خب میبینید که توی api ارسالی از متغییرهای chat_id و text استفاده شده است


 


 


- متغیر text که همون پیام ما هست 


- متغیر chat_id شناسه ایدی یوزر ما یا شناسه ایدی کانال یا شناسه ایدی گروه توی تلگرام هست


 


مثلا اینجا شناسه 160460920 مربوط به ایدی من توی تلگرام هست


 


خب حالا سوال اینجاست که ما چطور این chat_id رو بدست بیاریم


 


کافیه یک پیام بصورت خصوصی به بات توی تلگرام ارسال کنید و سپس به کمک متد گت آپدیت chat_id خودمون رو پیدا کنیم


 


واسه پیدا کردن چت ایدی گروه هم میتونید بات رو به گپ دعوت کنید و بازم مثل قبل به کمک متد گت اپدیت chat_id گروه رو بدست بیارید


 


البته واسه ارسال توی کانال نیازی به پیدا کردن چت ایدی کانالتون ندارید 


 


و مستقیم به جای وارد کردن شناسه " اسم کانلتون رو میتونید وارد کنید = ANSWERCENTER@


 


تمامی رویداد های که بات توی اون نقش داره یک id داره خب توی تصویر زیر میتونید ببنید اون شناسه ها رو.


توجه داشته باشید که شناسه گروه ها یک عدد مفنی هست و اینکه باید حتما اون رو منفی رو لحاظ کنید


 


2api.png


 


 


ما به کمک تمامی رویداد هایی که توی متد getUpdate رخ میده میتونیم بات رو کنترل کنیم


 


این از بخش اول آموزش


 


بخش دوم آموزش : گرفتن مشخصات گروه و کانال و یوزر ها 


مدیریت گروه تلگرام " اخراج کاربران - گرفته شناسه کاربران - ازاد سازی کاربر اخراج شده - لیست ادمین های گروه - تعداد افزاد گروه - گرفتن پروفایل اعضا 


لینک ارسال
به اشتراک گذاری در سایت های دیگر

با سلام خدمت تمامی رفقا  :heart: 


خب یه سری متد دگه تعریف کنیم و بریم سروقت بیسیک


 


خب متد ها به اینصورت که در زیر گردآوری شدن


 


 getChat :


 


این متد میاد اطلاعاتی رو درمورد ایدی شحص یا گروه یا کانال به ما میده



گرفتن اطلاعات کانال

https://api.telegram.org/bot254484272:AAFcW6gzBWVCeFkryEgzJkoj6IAVtl9xySE/getChat?chat_id=@basicforandroid

گرفتن اطلاعات شخص

https://api.telegram.org/bot254484272:AAFcW6gzBWVCeFkryEgzJkoj6IAVtl9xySE/getChat?chat_id=16893253

گرفتن اطلاعات گروه

https://api.telegram.org/bot254484272:AAFcW6gzBWVCeFkryEgzJkoj6IAVtl9xySE/getChat?chat_id=-165482256487523

getChatAdministrators:


 


به کمک این متد میتونید لیست ادمین ها + سازنده گروه یا کانال رو بیابید 



https://api.telegram.org/bot254484272:AAFcW6gzBWVCeFkryEgzJkoj6IAVtl9xySE/getChatAdministrators?chat_id=-1001068080291


{"ok":true,"result":[{"user":{"id":254484272,"first_name":"Tankubot","username":"Tankubot"},"status":"administrator"},{"user":{"id":160460920,"first_name":"\u0645\u06cc\u0644\u0627\u062f","username":"Pishnok"},"status":"creator"}]}

3api.png


 


 


getChatMembersCount :


 


این متد تعداد اعضا کانال یا گروه ها رو به ما میده 



https://api.telegram.org/bot254484272:AAFcW6gzBWVCeFkryEgzJkoj6IAVtl9xySE/getChatMembersCount?chat_id=@asiatek


{"ok":true,"result":207}

sendphoto :


 


ارسال تصویر به شخص مورد نظر & کانال & گروه



https://api.telegram.org/bot213276334:AAGwyAFdPgg1Wa6hifAfZfeSfgKs_fwS38w/sendphoto?photo=AgADBAADmKkxG3hwkAnzu3F33QKyHHiFWBkABI2NSgr_tSkT4DQBAAEC&chat_id=160460920

خروجی جیسون به اینصورته 



{"ok":true,"result":{"message_id":52,"from":{"id":213276334,"first_name":"telegramd_bot","username":"telegdonibot"},"chat":{"id":160460920,"first_name":"\u0645\u06cc\u0644\u0627\u062f","username":"Pishnok","type":"private"},"date":1469519210,"photo":[{"file_id":"AgADBAADmKkxG3hwkAnzu3F33QKyHHiFWBkABI2NSgr_tSkT4DQBAAEC","width":90,"height":64},{"file_id":"AgADBAADmKkxG3hwkAnzu3F33QKyHHiFWBkABCQfNlvgEQyW4jQBAAEC","file_size":26377,"width":320,"height":228},{"file_id":"AgADBAADmKkxG3hwkAnzu3F33QKyHHiFWBkABAUTzxQ63PyR4TQBAAEC","file_size":119078,"width":800,"height":571},{"file_id":"AgADBAADmKkxG3hwkAnzu3F33QKyHHiFWBkABLfjJb_4W6w33zQBAAEC","file_size":179921,"width":1180,"height":842}]}}

متغیر Type :  private   ارسال عکس به صورت خصوصی بوده


file_id : هر عکسی که توی تلگرام ارسال میشه یه ادرس به خصوصی داره و این فایل ایدی محتواش همون عکس ارسالی ماست


و همچنین خصوصیت عکس :


File_size: اندازه عکس


width : عرض تصویر


height : طول تصویر


 


البته هنوز راهی پیدا نکردم که از توی خود بیسیک به api تلگرام عکسی بفرستم


 


اما به کمک فایل php زیر میتونید عکستونو پست کنید به تلگرام 



<?php

$botToken = "Token";
$website = "https://api.telegram.org/bot".$botToken;

?>

<form action="<?php echo $website.'/sendphoto' ?>" method="post" enctype ="multipart/form-data">

<input type="text" name ="chat_id" value="CHAT ID GROUP ya CHANNEL ya ID SHOMA" />
<input type="file" name="photo" />
<input type="submit" value="send" />
</form>


sendContact:

ارسال مخاطب 



https://api.telegram.org/bot261944077:AAENGD8m7xFKbA37HC9cUy9h1eobEX9DUVk/sendContact?phone_number=+989300007481&first_name=milad&last_name=ahmadi&chat_id=160460920


phone_number     شماره مد نظر شما

 

 

first_name            اسم شخص

 

 

last_name            فامیلی

 

 

user_id               این متغیر میتونه چت ایدی شخص - کانال - گروه باشه


 


sendLocation :


 


ارسال موقعیت مکانی :



https://api.telegram.org/bot261944077:AAENGD8m7xFKbA37HC9cUy9h1eobEX9DUVk/sendLocation?longitude=13.46.14655&latitude=6,378,137.0&chat_id=160460920


longitude     :    عرض موقعیت مکانی

 

 

latitude        :    عرض جغرافیایی

که میتونید از سنسورهایی ک بر روی گوشی ها هست اون رو بگیرید و بفرستید یا به کمک کتابخونه GPS


 


sendVenue :


 


ارسال موقعیت مکانی به همراه توضیحات بر روی نقشه 



https://api.telegram.org/bot261944077:AAENGD8m7xFKbA37HC9cUy9h1eobEX9DUVk/sendVenue?longitude=13.46.14655&title=shiraz&address=SHIRAZ hafezea&latitude=6,378,137.0&chat_id=160460920


location   :  همون متغییرهایی که توی متد location  استفاده می کردیم

 

 

title     :   عنوان

 

 

address  :  آدرس

{"ok":true,"result":{"message_id":70,"from":{"id":261944077,"first_name":"elecroidbot","username":"pishnokbot"},"chat":{"id":160460920,"first_name":"\u0645\u06cc\u0644\u0627\u062f","username":"Pishnok","type":"private"},"date":1469520741,"location":{"latitude":6.000012,"longitude":13.460000},"venue":{"location":{"latitude":6.000012,"longitude":13.460000},"title":"\u0634\u06cc\u0631\u0627\u0632",
"address":"\u0634\u06cc\u0631\u0627\u0632 \u062d\u0627\u0641\u0638\u06cc\u0647"}}}

forwardMessage:


 


فوروارد داده ها


:areuok: 



https://api.telegram.org/bot254484272:AAFcW6gzBWVCeFkryEgzJkoj6IAVtl9xySE/forwardMessage?chat_id=-1001068080291&from_chat_id=-1001068080291&message_id=260


chat_id   : چت ایدی ارسالی بات - یعنی بات به این چت ایدی اطلاعات رو فوروارد میکنه

 

 

 

from_chat_id  : ادرس چت ایدی - یعنی میتونه شخص باشه یا کانال یا گروه

 

 

 message_id  : شناسه message 

 

 

 

 

 


getUserProfilePhotos:

 


گرفتن عکس پروفایل از طریق یوزر ایدی 


 




https://api.telegram.org/bot261944077:AAENGD8m7xFKbA37HC9cUy9h1eobEX9DUVk/getUserProfilePhotos?limit=0&user_id=75140798



getUserProfilePhotos
لینک ارسال
به اشتراک گذاری در سایت های دیگر

ممنون از آموزش خوبتون واقعا فوق العادس :53:

امکانش هست به کسی توی تلگرام مستقیم بدون برنامه تلگرام پیام داد؟ مثلا آی دی خودمون رو بذاریم با یدونه ادیت تکس بفرسته بهش

لینک ارسال
به اشتراک گذاری در سایت های دیگر

لینک ارسال
به اشتراک گذاری در سایت های دیگر

نمایش اطلاعات متد Getme  :


 


این متد اطلاعات بات رو به صورت جیسون نمایش میده



{"ok":true,"result":{"id":261944077,"first_name":"elecroidbot","username":"pishnokbot"}}

به کمک سایت مرجع کد های جیسون رو به بیسیک تبدیل میکنیم


 


http://www.basic4ppc.com:51042/json/index.html



Sub Globals

Private Label1 As Label
Dim down As HttpJob
Private Label2 As Label
Private Label3 As Label
Private Label4 As Label

End Sub


Sub Activity_Create(FirstTime As Boolean)

Activity.LoadLayout("main")
down.Initialize("job1",Me)
down.Download("https://api.telegram.org/bot261944077:AAENGD8m7xFKbA37HC9cUy9h1eobEX9DUVk/getme")


End Sub


Sub JobDone (Job As HttpJob)

If Job.Success = True Then
ToastMessageShow("Hi",False)
Dim parser As JSONParser
parser.Initialize(Job.GetString)
Dim root As Map = parser.NextObject
Dim result As Map = root.Get("result")
Dim id As Int = result.Get("id")
ToastMessageShow(id,False)
Dim first_name As String = result.Get("first_name")
ToastMessageShow(first_name , False)
Dim username As String = result.Get("username")
Dim ok As String = root.Get("ok")
Label1.Text = result.Get("username")
Label2.Text = result.Get("id")
Label3.Text = result.Get("first_name")
Label4.Text = root.Get("ok")
End If

End Sub

لینک ارسال
به اشتراک گذاری در سایت های دیگر

ساخت بات هیتلر مسیج و خوش امد گو به کمک متد GetUpdate :


 


توی تمامی بات های php - از متد وب هوک استفاده کردن - این متد به ایین صورته که هر تغییر ایجاد بشه! خود تلگرام بات رو صدا میکنه . اما توی بیسیک ما خودمون بات رو صدا میزنیم


 ما میاییم هر 1 ثانیه به کمک سرویس درخواست به بات تلگرام میدیم و نسبت به داده های دریافتی یه سری دستورات رو اجرا میکنیم



Sub Activity_Create(FirstTime As Boolean)

Activity.LoadLayout("main")
StartService(Starter)

ToastMessageShow("service Runed",False)
load.Initialize("job",Me)
load.Download("https://api.telegram.org/bot254484272:AAFcW6gzBWVCeFkryEgzJkoj6IAVtl9xySE/getupdates?offset=-1")


End Sub

این تکه کد میاد اخرین رویداد اتفاق افتاده توی گپ رو به ما میده 



getupdates?offset=-1 

Starter:




Sub Process_Globals
Private load1 As HttpJob
End Sub


Sub Service_Start (StartingIntent As Intent)
load1.Initialize("job1",Me)
load1.Download("https://api.telegram.org/bot254484272:AAFcW6gzBWVCeFkryEgzJkoj6IAVtl9xySE/getupdates?offset=-1")
StartServiceAt("", DateTime.Now + 1000,True)
End Sub
 


Sub Application_Error (Error As Exception, StackTrace As String) As Boolean
Return True
End Sub 

داده های جیسون رو توی سایت مرجع تبدیل کنید و توی sub jobdon بزارید


http://www.basic4ppc.com:51042/json/index.html


 


این قسمت توی کد های تبدیل شده



Dim parser As JSONParser
parser.Initialize(<text>)  

حتما به صورت زیر ویرایش کنید - چون قراره با رشته های متنی کار کنیم 



Dim parser As JSONParser
parser.Initialize(Job.GetString)



Sub JobDone (Job As HttpJob)
If Job.Success Then
Dim parser As JSONParser
parser.Initialize(Job.GetString)
Dim root As Map = parser.NextObject
Dim result As List = root.Get("result")
For Each colresult As Map In result
Dim update_id As Int = colresult.Get("update_id")

Dim message As Map = colresult.Get("message")
Dim date As Int = message.Get("date")

Dim chat As Map = message.Get("chat")
Dim id As Int = chat.Get("id")

Dim title As String = chat.Get("title")

Dim Typed As String = chat.Get("type")

Dim message_id As Int = message.Get("message_id")

Dim from As Map = message.Get("from")
Dim id1 As Int = from.Get("id")

Dim first_name As String = from.Get("first_name")

Dim username As String = from.Get("username")

Dim text As String = message.Get("text")

If text = "daesh" Then
ToastMessageShow("خیلی بی تربیتی",False)
Dim web As WebView
Dim web1 As WebView
web.Initialize("web")
web1.Initialize("web")
web.LoadUrl("https://api.telegram.org/bot254484272:AAFcW6gzBWVCeFkryEgzJkoj6IAVtl9xySE/kickChatMember?chat_id=-1001068080291&user_id="&id1)
web1.LoadUrl("https://api.telegram.org/bot254484272:AAFcW6gzBWVCeFkryEgzJkoj6IAVtl9xySE/sendMessage?text=blacked:"&username&"&chat_id=-1001068080291")

Else
ToastMessageShow("nist !!! ", False)

End If
'
Next
Dim ok As String = root.Get("ok")
End If
End Sub 

اینجا هیتلر مسیج بر روی daesh تنظیم شده که شما میتونید به کمک دیتابیس و سرچ توی دیتابیس کلمات زیادی رو توی هیتلر قرار بدید


 


واسه ی اضافه کردن امکان خوش امد گویی این کد روی ساب جاب قرار بدید 



Dim new_chat_member As Map = message.Get("new_chat_member")
Dim id_join As Int = new_chat_member.Get("id")
Dim first_name_join As String = new_chat_member.Get("first_name")
Label11.Text = first_name_join
If Label11.Text="" Then
Else


Dim web2 As WebView
web2.Initialize("web2")
web2.LoadUrl("https://api.telegram.org/bot254484272:AAFcW6gzBWVCeFkryEgzJkoj6IAVtl9xySE/sendMessage?text="&first_name_join&": welcome%20to%20group%20&chat_id=-1001068080291")

End If


Dim username As String = new_chat_member.Get("username")

چیزیو ما از پیش خودمون توی کد ها اضافه نکردیم - فقط کد ها رو تبدیل کردیم و توی بیسیک استفاده کردیم 


 


بات فقط کار با رشته های متنی هست 


 


شما میتونید تمامی ارایه ها رو به این صورت مثلا, تمامی داده ها (عکس - فیلم - مخاطب - مسیج - استیکر-ایموج) رو توی خصوصی بات ارسال کنید


و کد های جیسون رو به راحتی تبدیل کنید و واسه هر کدون هیتلر یا دستوری قرار بدید 

لینک ارسال
به اشتراک گذاری در سایت های دیگر

بایگانی شده

این موضوع بایگانی و قفل شده و دیگر امکان ارسال پاسخ نیست.

  • کاربران آنلاین در این صفحه   0 کاربر

    • هیچ کاربر عضوی،در حال مشاهده این صفحه نیست.
×
×
  • اضافه کردن...