همه ی خدمات هم سایت را با تخفیف دریافت کنید
همه ی خدمات هم سایت را با تخفیف دریافت کنید
نحوه ارسال نوتیفیکیشن تلگرام و تنظیم ربات در تلگرام
تلگرام یک پلتفرم عالی با تعداد زیادی کاربر است (من خودم یک کاربر تلگرام هستم) و بهترین راه برای دریافت نحوه ارسال نوتیفیکیشن در تلگرام چیست؟ با اطمینان نمی توانیم بدانیم شاید آنها ایمیل یا چیز دیگری را دوست داشته باشند، اما می توان حدس زد که ارسال نوتیفیکیشن ها به تلگرام بسیار راحت خواهد بود.
ارسال نوتیفکیشن در تلگرام
و در این بخش بیشتر با مفاهیم نحوه ارسال نوتیفیکیشن اشنا خواهیم شد و همچنین اگر مایلید از نحوه ارسال نوتیفیکیشن های تلگرام خود مطلع شوید ، تیم هم سایت این مقاله را برای شما تهیه کرده است تا بتوانید با راه حل های آن آشنا شوید ، به مکان مناسبی آمده اید و من این ویژگی را به برنامه خود اضافه کردم و آن را دوست دارم.
یک یادداشت سریع در این مقاله نمونه هایی از کد را در پایتون ارائه می کنم، اما ایده ها مختص پایتون نیستند و بدون هیچ عجله ای می توانند به زبان دیگری نیز ترجمه شوند.
بنابراین بدون آزار و اذیت بیشتر ، نحوه ارسال نوتیفیکیشن در ربات تلگرام را توضیح خواهیم داد.
قبل از ایجاد یک ربات تلگرام کنید باید بدانید که در ادامه قرار است با تمامی مفاهیم نحوه ارسال نوتیفیکیشن اشنا شوید و بعد از آن می توانید مراحل زی را انجام دهید.
اول از همه ، شما نیاز به ایجاد یک ربات تلگرام دارید، برای این کار باید از یک ربات تلگرام استفاده کنید، میتوانید از BotFather استفاده کنید.
اکنون در مقاله نحوه ارسال نوتیفیکیشن می بینید که چه کاری می تواند انجام دهد. اما آنچه مورد علاقه ماست ایجاد یک چیز جدید نیست ، بنابراین این چیزی است که ما می خواهیم انتخاب کنیم (/newbot).
شما به سرعت می فهمید که نام ربات باید به “bot” ختم شود. و از آنجا که شما مثل من هستید و خیلی دیر به بازی می آیید ، بیشتر نامهای ربات قبلاً گرفته شده است.
اما در نهایت ، شما می خواهید یک نام برای ربات خود پیدا کنید و یک نشانه دسترسی را که ما به آن نیاز داریم دریافت کنید.
اکنون که یک ربات دارید ، کاربران تلگرام می توانند آن را پیدا کرده و از آن استفاده کنند. اما یک مشکل وجود دارد، شما نمی توانید کاربرانی را که از تلگرام به کاربران برنامه شما وارد می شوند مرتبط کنید. بگذارید به شما نشان دهیم چرا؟
هنگامی که دکمه “شروع” را روی ربات خود فشار داد ، “بروزرسانی” دریافت خواهید کرد، با مراجعه به لینک زیر می توانید تمام به روزرسانی های bot را حتی در مرورگر خود بررسی کنید.
URL https://api.telegram.org/bot{bot_token}/getUpdates
(فراموش نکنید که از نشانه دسترسی خود در URL استفاده کنید)
نمی توانید چیزی بخوانید؟ نگران نباش با نصب برخی از پسوند پیشراننده JSON در مرورگر خود می توانید آن را تعمیر کنید، من از JSON Formatter برای کروم استفاده می کنم، به نظر خیلی بهتر میاد.
بنابراین همانطور که می بینید ما اطلاعات زیادی در مورد شخص دریافت نمی کنیم. از این اطلاعات می توانیم نام کامل آنها را بدست آوریم. اما خوشبختانه اگر کاربر نام کامل خود را در برنامه شما ارائه دهد ، و منحصر به فرد بودن آن را تضمین نمی کند. بنابراین ما نمی توانیم از آن استفاده کنیم تا کاربر را در برنامه های شما پیدا کنیم.
یکی دیگر از اطلاعاتی که به دست می آوریم نام کاربری است، این بسیار مفید است زیرا بین همه کاربران تلگرام بی نظیر است، اما به احتمال زیاد آن را در برنامه های خود ندارید، بنابراین ما باید از یک کاربر بخواهیم نام کاربری خود را در جایی از برنامه وارد کند. این کار خیلی زیاد است که من مطمئن نیستم کسی انجام دهد.
گزینه دیگر برای همراهی کاربر این است که از آنها بخواهید ایمیلی را که در برنامه شما استفاده کرده اند به ربات ارائه دهند، اما این دارای نقص های بسیار زیادی است: کاربر می تواند ضمن وارد کردن ایمیل تایپی را ایجاد کند ، کاربر می تواند ایمیل کاربر دیگری را وارد کرده و از سیستم سوءاستفاده کند. این خیلی بد است
آیا می توانیم بهتر عمل کنیم؟
با استفاده از یک کاربر
البته که میتونیم. برای ارتباط کاربر ، از تکنیکی به نام پیوند عمیق استفاده خواهیم کرد.
ابتدا باید یک علامت تصادفی منحصر به فرد برای هر کاربر ایجاد کنید، من از کد زیر برای تولید توکن با استفاده از پایتون استفاده کرده ام:
from secrets import token_urlsafetoken = token_urlsafe(٨)token# => ‘uEDbtJFHxKc’
سپس باید آن توکن را ذخیره کنید تا بعداً بتوانید کاربر را با آن پیدا کنید، می توانید آن را در پایگاه داده خود ذخیره کنید یا به عنوان مثال از مکانی دیگر استفاده کنید، من یک مدل نوتیفیکیشن دارم ، بنابراین فیلدی را به جدول مدل اضافه کردم.
class Notification(models.Model): user = models.ForeignKey(User, on_delete=models.CASCADE) # … connect_token = models.CharField(max_length=۶۴, null=True)
بنابراین ما توکن uEDbtJFHxKc ایجاد کرده و آن را ذخیره کرده ایم، اکنون ما باید از این توکن در URL به ربات تلگرام استفاده کنیم که کاربر برای کلیک بر روی آن باید کلیک کند تا همه کار انجام شود:
telegram_url = ‘https://www.telegram.me’bot_name = ‘music_notification_bot’token = ‘uEDbtJFHxKc’url = f'{telegram_url}/{bot_name}?start={token}’
حالا که ما داریم
URL, ‘https://telegram.me/music_notification_bot?start=uEDbtJFHxKc’
وقت آن است که آن را به کاربر نشان دهیم، فقط آن را در هر مکانی از برنامه خود نمایش داده و منتظر بمانید تا کاربر روی آن کلیک کند.
هنگامی که کاربر روی “شروع” کلیک کرد ، باید یک بروزرسانی دیگر را دریافت کنید:
{ “ok”: true, “result”: [ // … // previous updates // … { “update_id”: ۵٩٩١۶٢٣۶۵, “message”: { “message_id”: ١٧۴, “from”: { … }, “chat”: { … }, “date”: ١۵۴٩٧٨٨٣۵٧, “text”: “/start uEDbtJFHxKc”, “entities”: [ … ] } } ]}
در نهایت می توانیم کاربر خود را شناسایی کنیم. اکنون قسمت متن حاوی نشان کاربر است. بیایید جلو برویم و آن را از این زمینه خارج کنیم:۰
bot_token = ‘your_bot_token’updates_url = f’https://api.telegram.org/bot{bot_token}/getUpdates’import requestsresponse = requests.get(updates_url).json()text = response[‘result’][۰][‘message’][‘text’]text# => ‘/start uEDbtJFHxKc’splitted_text = text.split(‘ ‘)# => [‘/start’, ‘uEDbtJFHxKc’]token = splitted_text[-١]# => ‘uEDbtJFHxKc’
از این توکن می توان برای یافتن کاربر استفاده کرد، اجرای شما بستگی به نحوه ذخیره توکن در وهله اول دارد، اما نحوه انجام این کار به شرح زیر است:
notification = Notification.objects.get(channel=’telegram’, connect_token=token)user = notification.user
بنابراین کاربر دکمه “شروع” را کلیک کرده بود، اما آنها می بینند که هیچ اتفاقی نیفتاده است، بیایید حداقل از آنها استقبال کنیم.
برای استقبال از کاربر ، باید بدانیم که کاربر مکالمه ای را با ربات ما آغاز کرده است، دو روش برای چگونگی انجام این کار وجود دارد: نظرسنجی و صفهات وب.
شما در حال حاضر می دانید که نظرسنجی چیست، شما قبلاً این کار را کرده اید یا حداقل دیده ام که این کار را انجام دهم.
صفحه https://api.telegram.org/bot{bot_token}/getUpdates ما یک نظرسنجی انجام دادیم، نظرسنجی به طور مرتب ، به عنوان مثال هر ٢ ثانیه به روزرسانی ها را بررسی می کند. از این طریق همیشه می توانیم بدانیم چه کسی با ربات تعامل داشته است.
صفحات وب اندکی از روش دیگر استفاده می کنند، به جای بررسی هر ٢ ثانیه برای به روزرسانی ها ، فقط منتظر می مانیم یک بروزرسانی اتفاق بیفتد، و هنگامی که اتفاق می افتد تلگرام با داده های به روزرسانی درخواستی را به URL ای که مشخص کرده ایم ارسال می کند، به این ترتیب می توانیم به سرورهای خودمان و تلگرام کمی استراحت بدهیم و فقط منتظر بمانیم تا بروزرسانی به دست بیاید
اگر ترافیک بالایی داشته باشید ، نظرسنجی می تواند بهتر باشد ، اما متأسفانه ، این یک استثناء است ، بنابراین تصمیم گرفته ام تا با صفحات وب برویم.
صفحات وب
تنظیم یک صفحه وب در تلگرام بسیار آسان است، شما فقط نیاز به ارسال درخواست دارید.
به https://api.telegram.org/bot{bot_token}/setWebhook؟url={your_server_url. باز کردن این پیوند در مرورگر شما نیز کار می کند. your_server_url URL است که تلگرام به روزرسانی ها را برای آنها ارسال می کند. در اینجا آنچه باید در پاسخ دریافت کنید:
{ “ok”: true, “result”: true, “description”: “Webhook was set”}
اگر به خودتان اعتماد نکنید می توانید:
فقط برای تردید در این مورد به https://api.telegram.org/bot{bot_token}/getWebhookInfo مراجعه کنید تا همه چیز خوب باشد، شما باید چیزی شبیه به این را ببینید:
{ “ok”: true, “result”: { “url”: “https://example.com/your_server_endpoint”, “has_custom_certificate”: false, “pending_update_count”: ۰, “max_connections”: ۴۰ }}
اکنون. اگر چیزی درستی نبود (مانند URL خطایی تنظیم کرده اید) ، می توانید با مراجعه به https://api.telegram.org/bot{bot_token}/deleteWebhook ، وب سایت را حذف کنید و دوباره تنظیم کنید.
توسعه محلی
قبل از ادامه می خواهم چند کلمه در مورد توسعه محلی بگویم، وب سایت ها برای آن بسیار مناسب نیستند و صفحات وب به URL ارسال می شوند و به احتمال زیاد URL اینترنتی رایانه خود را نمی شناسید. همچنین ، یک وب سایت Telegram به مجوز HTTPSنیاز دارد.
اما یک راه حل برای این مشکل وجود دارد، ngrok ابزاری است که محیط محلی شما را در معرض دید جهانیان قرار می دهد، ngrok را بارگیری کنید ، آن را نصب کنید و آن را با درگاهی که سرور شما در آن کار می کند شروع کنید. سرور من روی درگاه ٨۰۰۰ کار می کند ، بنابراین نیاز به اجرای آن در یک کنسول دارم.
/path/to/ngrok http ٨۰۰۰
سپس ngrok باید URL به شما بدهد که می توانید برای تنظیم یک وب سایت استفاده کنید.
استقبال کاربر
اکنون که شما آماده توسعه هستید ، به جمع کاربران ما خوش آمدید، چیزی که آنه منتظر آن هستند.
پس از کلیک کاربر روی “شروع” ، تلگرام شما به روزرسانی را به آدرس URL سرور شما ارسال می کند، قسمت های جالب بروزرسانی باید به صورت زیر باشد:
{ “message”: { “chat”: { “id”: ۴۵٧ }, “text”: “/start uEDbtJFHxKc”, }}
این زمان مناسب برای ارتباط کاربر با استفاده از متن پیام است، همچنین یک بخش جالب از اطلاعات ، ID چت وجود دارد، شناسه چت همان چیزی است که ما برای ارسال پیام به آن کاربر نیاز داریم. تلگرام دارای API انتهایی برای ارسال پیام است.
من مطمئن نیستم که باید نحوه استفاده از آن را توضیح دهم ، اما این کد پرداش چیست که به نظر می رسد صفحه وب را پردازش می کند:
import jsonimport requestsdef callback(request): body = json.loads(request.body) text = body[‘message’][‘text’] token = text.split(‘ ‘)[-١] associate_user_by_token(token) bot_key = os.environ.get(‘TELEGRAM_API_KEY’) chat_id = body[‘message’][‘chat’][‘id’] text = “Welcome!” send_message_url = f’https://api.telegram.org/bot{bot_key}/sendMessage?chat_id={chat_id}&text={text}’ requests.post(send_message_url)
اگر بعد از کلیک کاربر دکمه معروف “شروع” ، یک پیام خوش آمدید برای شما ارسال شود ، کاربر دیگر فکر نمی کند که همه چیز کار می کند یا خیر.
نحوه ارسال پوش نوتیفیکیشن تلگرام
سرانجام ، به این نکته می رسیم که چرا همه این موارد را انجام می دهیم، نحوه ارسال نوتیفیکیشن تلگرام را می کنیم، ممکن است بخواهید درباره برخی اطلاعاتی که در برنامه شما رخ داده است به کاربر اطلاع دهید، به عنوان مثال ، شخصی پست کاربر یا هر چیز دیگری را دوست داشت. من برای اطلاع از انتشار جدید موسیقی از هنرمندان مورد علاقه کاربر از تلگرام استفاده می کنم.
شما می دانید نحوه ارسال نوتیفیکیشن تلگرام چگونه است. شما فقط نیاز به ارسال پیام دارید.
با استفاده از: https://api.telegram.org/bot{bot_token}/sendMessage?chat_id={chat_id}&text={notification_text}. البته ، اگر قصد دارید نحوه ارسال نوتیفیکیشن را بدانید باید اضافه کنم که ، باید چت آی دی را در پایگاه داده خود ذخیره کنید، همچنین ممکن است بخواهید پیغام یا قالب بندی دیگری را در پیام خود وارد کنید. در این حالت ، باید پارامتر دیگری را به آدرس URL ارسال کند و parse_mode اضافه کنید. ٢ گزینه تجزیه وجود دارد:
Markdown یا HTML. من از Markdown استفاده می کنم زیرا استفاده از آن ساده تر است. اگر با Markdown آشنا نیستید می توانید از HMTL استفاده کنید ، اما توصیه می کنم Markdown را تا چه اندازه آسان بخوانید.
در اینجا آدرس پیام ارسال شده به شکل می باشد:
with parse_mode parameter https://api.telegram.org/bot{bot_token}/sendMessage?chat_id={chat_id}&text={notification_text}&parse_mode=markdown.
لینک هایی را به نسخه های جدید به متن نوتیفیکیشن اضافه می کنم و هرچه را که برای نحوه ارسال نوتیفیکیشن باید میدانستید را در این مقاله گفته شد.
{release.date}: {release.artist.name} [{release.title}]({release.url}).
کلام آخر
در این مقاله تیم هم سایت تمام تلاش خود را کرده تا بتواند هرآنچه نیاز است برای دانشتن نحوه ارسال نوتیفیکیشن و آموزش ساخت ربات تلگرام را با قواعد و قوانین اصولی را به شما عزیزان اطلاع رسانی کند و همچنین تیم هم سایت علاوه بر مقاله ای که مطالبه فرمودید ، مقاله هایی در ارتباط با تلگرام و تمامی پلتفرم های دیگر برای عزیزان اماده کرده است.
شما می توانید دانستن موضوعات بیشتر در رابطه با نحوه ارسال نوتیفیکیشن و تلگرام را در سایت هم سایت بزرگترین سایت آژانس دیجیتال مارکتینگ ایران ملاحظه بفرمایید و تیم ما در این راستا هرآنچه که نیاز داشته باشید به شما کمک خواهد نمود تا شما از تیم بزرگ هم سایت خشنود و راضی باشید.
مشاوره رایگان
این محتوا را به اشتراک بگذارید
عضویت در خبرنامه