יום ראשון, 1 ביולי 2018

יצירת בוט בטלגרם (Java)


Telegram Bot with Java

משתמשי טלגרם וודאי מכירים את אחת התכונות הכי מגניבות בטלגרם: בוטים.

"בוט" הוא למעשה תוכנה שיושבת על שרת שנפרד לחלוטין מטלגרם, ומנהלת תקשורת של שליחה
וקבלה של שלל סוגים של הודעות, תמונות וכו' עם משתמשי טלגרם אחרים.

יש בוטים שנועדו שידברו איתם "אחד על אחד", יש בוטים שנועדו להתנהג כמו חברים בקבוצות,
ויש כאלה שיודעים לעשות את שניהם.

לאחרונה פיתחתי בוט שמתפקד כחבר בקבוצה גדולה. הבוט אמור היה להאזין להודעות, וכאשר היו הודעות
שעונות ל"תבניות" מסוימות היה עליו לענות בהתאם.


את הבוט כתבתי ב-Java, תוך שימוש בספרייה Rubenlagus' library for Java שניהלה את התקשורת עם ה-API של טלגרם.
קוד המקור של הבוט שלי: [צפייה חסר], [הורדה חסר]


................................












התחלה: יצירת בוט במסד של טלגרם

פיתחו את @BotFather וצרו את הבוט הראשון שלכם על ידי שליחת הפקודה /newbot.
תנו לבוט שלכם שם, תיאור, תמונה וכל מה שמופיע ברשימה.
לקריאה נוספת: How to Create and Deploy a Telegram Bot

בסיום שלב זה יהיה ברשותכם ברשותכם המזהה של הבוט שלכם ("TOKEN").






פעולות ראשוניות

משום שממשק ה-API של טלגרם מבוסס HTTP, כבר עכשיו תוכלו לצפות בכל ההודעות שנשלחו לבוט שלכם (בתנאי שטלגרם לא מחק את "עדכוני-הודעות" אלו) ישירות מהדפדפן:
https://api.telegram.org/bot<token>/getUpdates

באותה מידה, תוכלו לומר לבוט לשלוח הודעות למשתמשים או קבוצות:
https://api.telegram.org/bot<token>/sendMessage?chat_id=<some_chat_id>=Hello

כמובן שאת <token> ו-<some_chat_id> תחליפו במזהה של הבוט שלכם ומזהה הצ'אט הרצוי.
(לאחר שתשלחו משהו לבוט, תוכלו למצוא את מזהה הצ'אט (some_chat_id) בין הערכים שמחזירה הפונקציה getUpdates)








כמה הגדרות נוספות

בחזרה ל-BotFather, נקבע שני דברים חשובים:

כדי שהבוט שלנו יקבל את כל ההודעות, ולא רק הודעות שמתחילות ב-'/' או מציינות את שם הבוט, עלינו לקבוע
לו privacy mode שיאפשר זאת.
1. בחרו /setprivacy
2. בחרו את הבוט שלכם
3. בחרו Disable

(מקור: stackoverflow)


כדי שיהיה אפשר לצרף את הבוט שלנו לקבוצה, עלינו לקבוע לו joingroups mode שיאפשר זאת.
1. בחרו /setjoingroups
2. בחרו את הבוט שלכם
3. בחרו Enable







להתחיל לכתוב את הבוט

המדריך הזה ב-GitBook פשוט מעולה. כתיבה נוחה ומסודרת של בוטים עם Java. אין מה להוסיף, פשוט תורידו את ה-JAR
כפי שמוסבר ותעקבו אחריו.





להכיר את ה-API

זוכרים שאמרנו שטלגרם יכול למחוק את "עדכוני-ההודעות"? בדיוק. תוכלו לדעת בדיוק מתי הוא עושה זאת, ובעצם תוכלו להכיר את כל היכולות שמציע טלגרם למפתחים, על ידי קריאה מעמיקה על ה-API של טלגרם.

Telegram Bot API
Bots: An introduction for developers

(אגב, התשובה לשאלה:
  טלגרם מוחקים מהשרת שלהם את ה"עדכוני-ההודעות" כאשר הבוט שלנו קורא את העדכונים עם offset
  גדול באחד מה-offset של העדכון האחרון בשרת.
  טלגרם גם מוחקים את העדכונים אם עברו יותר מ24 שעות מבלי שהבוט קרא אותם.)








שרת

הבוט שכתבתם יכול לרוץ גם מהמחשב שלכם בבית, אבל אם אתם מתכוונים לכבות את המחשב או לנתק אותו
מהרשת, זה כנראה לא רעיון טוב.
Where to host Telegram Bots


אישית המליצו לי על השרת של HEROKU.
מעלים לשרת את הקוד של הבוט, והם דואגים להריץ אותו 24/7.
HEROKU מציעים מספר שעות כל חודש בחינם. אם נגמרות השעות האלו הבוט יפסיק לעבוד עד לתחילת החודש הבא. אם נרשמים לשירות עם כרטיס אשראי, גם בלי לשלם מקבלים מספיק שעות להרצה של בוט אחד בלי הפסקה. לפחות כך אמרו לי.











לקריאה נוספת:

Create Your First Telegram Bot With Google App Script
28 כלים שמפתחי בוטים חייבים להכיר
איך ליצור רובוט בטלגרם! המדריך (ללא קוד)



בהצלחה.




אין תגובות:

הוסף רשומת תגובה