ಪೈಥಾನ್‌ನಲ್ಲಿ ಟೆಲಿಗ್ರಾಮ್ ಬೋಟ್. ಮೊದಲಿನಿಂದಲೂ ವಿನಿಮಯ ದರಗಳೊಂದಿಗೆ ಬೋಟ್ ಬರೆಯಲು ಸಂಪೂರ್ಣ ಮಾರ್ಗದರ್ಶಿ

ಟೆಲಿಗ್ರಾಮ್‌ನಲ್ಲಿನ ಬಾಟ್‌ಗಳು ಪ್ರೇಕ್ಷಕರೊಂದಿಗೆ ಸಂಪರ್ಕವನ್ನು ಸ್ಥಾಪಿಸಲು ಸಹಾಯ ಮಾಡುವ ಕಾರ್ಯಕ್ರಮಗಳಾಗಿವೆ ಅಥವಾ ಹಿಂದೆ ಹಸ್ತಚಾಲಿತವಾಗಿ ನಿರ್ವಹಿಸಬೇಕಾದ ಕ್ರಿಯೆಗಳನ್ನು ಸರಳಗೊಳಿಸುತ್ತವೆ. ಈ ಕಾರ್ಯಕ್ರಮಗಳನ್ನು ವಿಶೇಷವಾಗಿ ಮೆಸೆಂಜರ್ ಪ್ಲಾಟ್‌ಫಾರ್ಮ್‌ಗಾಗಿ ಬರೆಯಲಾಗಿದೆ. ಬಾಟ್‌ಗಳು ಈ ರೀತಿಯಲ್ಲಿ ಕಾರ್ಯನಿರ್ವಹಿಸುತ್ತವೆ: ಬಳಕೆದಾರರು ಇನ್‌ಪುಟ್ ಲೈನ್ ಮೂಲಕ ಆಜ್ಞೆಯನ್ನು ಕಳುಹಿಸುತ್ತಾರೆ ಮತ್ತು ಸಿಸ್ಟಮ್ ಪಠ್ಯ ಅಥವಾ ಸಂವಾದಾತ್ಮಕ ಸಂದೇಶದೊಂದಿಗೆ ಪ್ರತಿಕ್ರಿಯಿಸುತ್ತದೆ. ಕೆಲವೊಮ್ಮೆ ಪ್ರೋಗ್ರಾಂ ನಿಜವಾದ ವ್ಯಕ್ತಿಯ ಕ್ರಿಯೆಗಳನ್ನು ಸಹ ಅನುಕರಿಸುತ್ತದೆ - ಅಂತಹ ಬೋಟ್ ಗ್ರಾಹಕರಲ್ಲಿ ಹೆಚ್ಚಿನ ನಂಬಿಕೆಯನ್ನು ಪ್ರೇರೇಪಿಸುತ್ತದೆ.

ಬಳಕೆದಾರರಿಗೆ ಸ್ವಯಂಚಾಲಿತ ಸಹಾಯಕ್ಕಾಗಿ ಹಲವಾರು ರೀತಿಯ ವ್ಯವಸ್ಥೆಗಳಿವೆ. ಕೆಲವು ಬಾಟ್‌ಗಳು ಗ್ರಾಹಕರೊಂದಿಗೆ ಸಂವಹನ ನಡೆಸುತ್ತವೆ, ಇತರರು ನಿಯಮಿತವಾಗಿ ಮಾಹಿತಿಯನ್ನು ಒದಗಿಸುತ್ತಾರೆ. ಕಾರ್ಯಕ್ರಮಗಳನ್ನು ವಿಧಗಳಾಗಿ ಸ್ಪಷ್ಟವಾಗಿ ವಿಭಜಿಸುವುದು ಅಸಾಧ್ಯ - ಡೆವಲಪರ್ಗಳು ಸಾಮಾನ್ಯವಾಗಿ ಒಂದು ಬೋಟ್ನಲ್ಲಿ ಹಲವಾರು ಕಾರ್ಯಗಳನ್ನು ಸಂಯೋಜಿಸುತ್ತಾರೆ.

ನೀವು 9 ಹಂತಗಳಲ್ಲಿ ಆನ್-ಸ್ಕ್ರೀನ್ ಬಟನ್‌ಗಳ ರೂಪದಲ್ಲಿ ಸಂವಾದಾತ್ಮಕ ಅಂಶಗಳೊಂದಿಗೆ ಟೆಲಿಗ್ರಾಮ್‌ಗಾಗಿ ಸರಳ ಬೋಟ್ ಅನ್ನು ಬರೆಯಬಹುದು. ಅವುಗಳಲ್ಲಿ ಪ್ರತಿಯೊಂದನ್ನು ವಿವರವಾಗಿ ನೋಡೋಣ ಮತ್ತು ಕೆಲವು ಪ್ರಶ್ನೆಗಳಿಗೆ ಉತ್ತರಿಸೋಣ:

  • ಬೋಟ್ ಅನ್ನು ಹೇಗೆ ಪ್ರಾರಂಭಿಸುವುದು;
  • ಒಂದು ಅಥವಾ ಹೆಚ್ಚಿನ ಗುಂಡಿಗಳಿಂದ ಅಂತರ್ನಿರ್ಮಿತ ಕೀಬೋರ್ಡ್ ಅನ್ನು ಹೇಗೆ ನೋಂದಾಯಿಸುವುದು;
  • ಅಪೇಕ್ಷಿತ ಕಾರ್ಯಗಳಿಗಾಗಿ ಗುಂಡಿಗಳನ್ನು ಹೇಗೆ ಪ್ರೋಗ್ರಾಂ ಮಾಡುವುದು;
  • ಇನ್‌ಲೈನ್ ಮೋಡ್ ಎಂದರೇನು ಮತ್ತು ಅಸ್ತಿತ್ವದಲ್ಲಿರುವ ಬೋಟ್‌ಗೆ ಅದನ್ನು ಹೇಗೆ ಹೊಂದಿಸುವುದು.

ಹಂತ 0: ಟೆಲಿಗ್ರಾಮ್ ಬಾಟ್‌ಗಳ API ಕುರಿತು ಸೈದ್ಧಾಂತಿಕ ಹಿನ್ನೆಲೆ

ಟೆಲಿಗ್ರಾಮ್ ಬಾಟ್‌ಗಳನ್ನು ರಚಿಸಲು ಬಳಸಲಾಗುವ ಮುಖ್ಯ ಸಾಧನವೆಂದರೆ HTML ಅಪ್ಲಿಕೇಶನ್ ಪ್ರೋಗ್ರಾಮಿಂಗ್ ಇಂಟರ್ಫೇಸ್, ಅಥವಾ HTML API. ಈ ಅಂಶವು ಸಂದರ್ಶಕರ ವಿನಂತಿಗಳನ್ನು ಸ್ವೀಕರಿಸುತ್ತದೆ ಮತ್ತು ಮಾಹಿತಿಯ ರೂಪದಲ್ಲಿ ಪ್ರತಿಕ್ರಿಯೆಗಳನ್ನು ಕಳುಹಿಸುತ್ತದೆ. ರೆಡಿಮೇಡ್ ವಿನ್ಯಾಸಗಳು ಪ್ರೋಗ್ರಾಂನಲ್ಲಿ ಕೆಲಸವನ್ನು ಸರಳಗೊಳಿಸುತ್ತದೆ. ಟೆಲಿಗ್ರಾಮ್‌ಗಾಗಿ ಬೋಟ್ ಬರೆಯಲು, ನೀವು ಈ ಇಮೇಲ್ ವಿಳಾಸವನ್ನು ಬಳಸಬೇಕಾಗುತ್ತದೆ: https://api.telegram.org/bot/METHOD_NAME

ಬೋಟ್ನ ಸರಿಯಾದ ಕಾರ್ಯನಿರ್ವಹಣೆಗಾಗಿ, ಟೋಕನ್ ಸಹ ಅಗತ್ಯವಿದೆ - ಪ್ರೋಗ್ರಾಂ ಅನ್ನು ರಕ್ಷಿಸುವ ಮತ್ತು ವಿಶ್ವಾಸಾರ್ಹ ಡೆವಲಪರ್ಗಳಿಗೆ ಪ್ರವೇಶವನ್ನು ತೆರೆಯುವ ಅಕ್ಷರಗಳ ಸಂಯೋಜನೆ. ಪ್ರತಿಯೊಂದು ಟೋಕನ್ ವಿಶಿಷ್ಟವಾಗಿದೆ. ಸೃಷ್ಟಿಯಾದ ಮೇಲೆ ಸ್ಟ್ರಿಂಗ್ ಅನ್ನು ಬೋಟ್‌ಗೆ ನಿಗದಿಪಡಿಸಲಾಗಿದೆ. ವಿಧಾನಗಳು ವಿಭಿನ್ನವಾಗಿರಬಹುದು: getUpdates, getChat ಮತ್ತು ಇತರರು. ವಿಧಾನದ ಆಯ್ಕೆಯು ಬೋಟ್ನಿಂದ ಅಭಿವರ್ಧಕರು ಯಾವ ಅಲ್ಗಾರಿದಮ್ ಅನ್ನು ನಿರೀಕ್ಷಿಸುತ್ತಾರೆ ಎಂಬುದರ ಮೇಲೆ ಅವಲಂಬಿತವಾಗಿರುತ್ತದೆ. ಟೋಕನ್ ಉದಾಹರಣೆ:

123456:ABC-DEF1234ghIkl-zyx57W2v1u123ew11

ಬಾಟ್‌ಗಳು GET ಮತ್ತು POST ವಿನಂತಿಗಳನ್ನು ಬಳಸುತ್ತವೆ. ವಿಧಾನದ ಪ್ಯಾರಾಮೀಟರ್‌ಗಳು ಹೆಚ್ಚಾಗಿ ಪೂರಕವಾಗಿರಬೇಕು - ಉದಾಹರಣೆಗೆ, sendMessage ವಿಧಾನವು ಚಾಟ್ ಐಡಿ ಮತ್ತು ಕೆಲವು ಪಠ್ಯವನ್ನು ಕಳುಹಿಸಬೇಕಾದಾಗ. ವಿಧಾನ ಪರಿಷ್ಕರಣೆಗಾಗಿ ನಿಯತಾಂಕಗಳನ್ನು ಅಪ್ಲಿಕೇಶನ್/x-www-form-urlencoded ಅಥವಾ ಅಪ್ಲಿಕೇಶನ್-json ಮೂಲಕ URL ಪ್ರಶ್ನೆ ಸ್ಟ್ರಿಂಗ್ ಆಗಿ ರವಾನಿಸಬಹುದು. ಫೈಲ್‌ಗಳನ್ನು ಡೌನ್‌ಲೋಡ್ ಮಾಡಲು ಈ ವಿಧಾನಗಳು ಸೂಕ್ತವಲ್ಲ. UTF-8 ಎನ್‌ಕೋಡಿಂಗ್ ಸಹ ಅಗತ್ಯವಿದೆ. API ಗೆ ವಿನಂತಿಯನ್ನು ಕಳುಹಿಸುವ ಮೂಲಕ, ನೀವು JSON ಸ್ವರೂಪದಲ್ಲಿ ಫಲಿತಾಂಶವನ್ನು ಪಡೆಯಬಹುದು. getME ವಿಧಾನದ ಮೂಲಕ ಮಾಹಿತಿಯನ್ನು ಹಿಂಪಡೆಯಲು ಪ್ರೋಗ್ರಾಂನ ಪ್ರತಿಕ್ರಿಯೆಯನ್ನು ನೋಡೋಣ:

https://api.telegram.org/bot ಪಡೆಯಿರಿ/getMe{ ಸರಿ: ನಿಜ, ಫಲಿತಾಂಶ: { id: 231757398, ಮೊದಲ_ಹೆಸರು: "ವಿನಿಮಯ ದರ ಬಾಟ್", ಬಳಕೆದಾರ ಹೆಸರು: "exchangetestbot" } }

ಇದ್ದರೆ ಫಲಿತಾಂಶ ಸಿಗುತ್ತದೆ ok ಸಮನಾಗಿರುತ್ತದೆ ನಿಜವಾದ. ಇಲ್ಲದಿದ್ದರೆ, ಸಿಸ್ಟಮ್ ದೋಷವನ್ನು ಸೂಚಿಸುತ್ತದೆ.

ಬಾಟ್‌ಗಳಲ್ಲಿ ಕಸ್ಟಮ್ ಸಂದೇಶಗಳನ್ನು ಪಡೆಯಲು ಎರಡು ಮಾರ್ಗಗಳಿವೆ. ಎರಡೂ ವಿಧಾನಗಳು ಪರಿಣಾಮಕಾರಿ, ಆದರೆ ವಿಭಿನ್ನ ಸಂದರ್ಭಗಳಲ್ಲಿ ಸೂಕ್ತವಾಗಿದೆ. ಸಂದೇಶಗಳನ್ನು ಪಡೆಯಲು, ನೀವು getUpdates ವಿಧಾನದೊಂದಿಗೆ ಹಸ್ತಚಾಲಿತವಾಗಿ ವಿನಂತಿಯನ್ನು ಬರೆಯಬಹುದು - ಪ್ರೋಗ್ರಾಂ ಪರದೆಯ ಮೇಲೆ ಅಪ್‌ಡೇಟ್ ಡೇಟಾ ಶ್ರೇಣಿಯನ್ನು ಪ್ರದರ್ಶಿಸುತ್ತದೆ. ವಿನಂತಿಗಳನ್ನು ನಿಯಮಿತವಾಗಿ ಕಳುಹಿಸಬೇಕು, ಪ್ರತಿ ರಚನೆಯನ್ನು ವಿಶ್ಲೇಷಿಸಿದ ನಂತರ, ಕಳುಹಿಸುವಿಕೆಯನ್ನು ಪುನರಾವರ್ತಿಸಲಾಗುತ್ತದೆ. ಆಫ್‌ಸೆಟ್ ಎಂಬುದು ಒಂದು ಪ್ಯಾರಾಮೀಟರ್ ಆಗಿದ್ದು, ಪರಿಶೀಲಿಸಿದ ವಸ್ತುಗಳ ಮರುಪ್ರದರ್ಶನವನ್ನು ತಪ್ಪಿಸಲು ಹೊಸ ಫಲಿತಾಂಶವನ್ನು ಲೋಡ್ ಮಾಡುವ ಮೊದಲು ಸ್ಕಿಪ್ ಮಾಡಿದ ದಾಖಲೆಗಳ ಸಂಖ್ಯೆಯನ್ನು ನಿರ್ಧರಿಸುತ್ತದೆ. ಈ ವೇಳೆ getUpdates ವಿಧಾನದ ಪ್ರಯೋಜನಗಳು ಕಾರ್ಯರೂಪಕ್ಕೆ ಬರುತ್ತವೆ:

  • HTTPS ಅನ್ನು ಕಾನ್ಫಿಗರ್ ಮಾಡಲು ಯಾವುದೇ ಮಾರ್ಗವಿಲ್ಲ;
  • ಸಂಕೀರ್ಣ ಸ್ಕ್ರಿಪ್ಟಿಂಗ್ ಭಾಷೆಗಳನ್ನು ಬಳಸಲಾಗುತ್ತದೆ;
  • ಬೋಟ್ ಸರ್ವರ್ ಕಾಲಕಾಲಕ್ಕೆ ಬದಲಾಗುತ್ತದೆ;
  • ಬೋಟ್ ಬಳಕೆದಾರರೊಂದಿಗೆ ಲೋಡ್ ಆಗಿದೆ.

ಬಳಕೆದಾರರ ಸಂದೇಶಗಳನ್ನು ಸ್ವೀಕರಿಸಲು ಬರೆಯಬಹುದಾದ ಎರಡನೆಯ ವಿಧಾನವೆಂದರೆ setWebhook. ಇದನ್ನು ಒಮ್ಮೆ ಬಳಸಲಾಗುತ್ತದೆ, ನಿರಂತರವಾಗಿ ಹೊಸ ವಿನಂತಿಗಳನ್ನು ಕಳುಹಿಸುವ ಅಗತ್ಯವಿಲ್ಲ. ವೆಬ್‌ಹೂಕ್ ನಿರ್ದಿಷ್ಟಪಡಿಸಿದ URL ಗೆ ಡೇಟಾ ನವೀಕರಣಗಳನ್ನು ಕಳುಹಿಸುತ್ತದೆ. ಈ ವಿಧಾನಕ್ಕೆ SSL ಪ್ರಮಾಣಪತ್ರದ ಅಗತ್ಯವಿದೆ. ಈ ಸಂದರ್ಭಗಳಲ್ಲಿ Webhook ಉಪಯುಕ್ತವಾಗಿರುತ್ತದೆ:

  • ವೆಬ್ ಪ್ರೋಗ್ರಾಮಿಂಗ್ ಭಾಷೆಗಳನ್ನು ಬಳಸಲಾಗುತ್ತದೆ;
  • ಬೋಟ್ ಓವರ್ಲೋಡ್ ಆಗಿಲ್ಲ, ಹೆಚ್ಚು ಬಳಕೆದಾರರಿಲ್ಲ;
  • ಸರ್ವರ್ ಬದಲಾಗುವುದಿಲ್ಲ, ಪ್ರೋಗ್ರಾಂ ಒಂದೇ ಸರ್ವರ್‌ನಲ್ಲಿ ದೀರ್ಘಕಾಲ ಉಳಿಯುತ್ತದೆ.

ಮುಂದಿನ ಸೂಚನೆಗಳಲ್ಲಿ, ನಾವು getUpdates ಅನ್ನು ಬಳಸುತ್ತೇವೆ.

@BotFather ಟೆಲಿಗ್ರಾಮ್ ಸೇವೆಯನ್ನು ಚಾಟ್ ಬಾಟ್‌ಗಳನ್ನು ರಚಿಸಲು ವಿನ್ಯಾಸಗೊಳಿಸಲಾಗಿದೆ. ಈ ವ್ಯವಸ್ಥೆಯ ಮೂಲಕ ಮೂಲ ಸೆಟ್ಟಿಂಗ್‌ಗಳನ್ನು ಸಹ ಹೊಂದಿಸಲಾಗಿದೆ - ವಿವರಣೆಯನ್ನು ಮಾಡಲು, ಪ್ರೊಫೈಲ್ ಫೋಟೋವನ್ನು ಹಾಕಲು, ಬೆಂಬಲ ಪರಿಕರಗಳನ್ನು ಸೇರಿಸಲು BotFather ನಿಮಗೆ ಸಹಾಯ ಮಾಡುತ್ತದೆ. ಗ್ರಂಥಾಲಯಗಳು - ಟೆಲಿಗ್ರಾಮ್ ಬಾಟ್‌ಗಳಿಗಾಗಿ HTML ವಿನಂತಿಗಳ ಸೆಟ್‌ಗಳು - ಇಂಟರ್ನೆಟ್‌ನಲ್ಲಿ ಲಭ್ಯವಿದೆ, ಅವುಗಳಲ್ಲಿ ಸಾಕಷ್ಟು ಇವೆ. ಉದಾಹರಣೆ ಪ್ರೋಗ್ರಾಂ ಅನ್ನು ರಚಿಸುವಾಗ, pyTelegramBotApi ಅನ್ನು ಬಳಸಲಾಯಿತು.

ಹಂತ 1: ವಿನಿಮಯ ದರದ ವಿನಂತಿಗಳನ್ನು ಕಾರ್ಯಗತಗೊಳಿಸುವುದು

ಮೊದಲು ನೀವು ಪ್ರಶ್ನೆಗಳನ್ನು ನಿರ್ವಹಿಸುವ ಕೋಡ್ ಅನ್ನು ಬರೆಯಬೇಕಾಗಿದೆ. PrivatBank API ಅನ್ನು ಬರೆಯುವಾಗ ನಾವು ಬಳಸುತ್ತೇವೆ, ಅದರ ಲಿಂಕ್ ಕೆಳಗೆ ಇದೆ: https://api.privatbank.ua/p24api/pubinfo?json&exchange&coursid=5. ನಿಮ್ಮ ಕೋಡ್‌ನಲ್ಲಿ ನೀವು ಈ ವಿಧಾನಗಳನ್ನು ಬಳಸಬೇಕಾಗುತ್ತದೆ:

  • load_exchange - ವಿನಿಮಯ ದರಗಳನ್ನು ಕಂಡುಕೊಳ್ಳುತ್ತದೆ ಮತ್ತು ಎನ್ಕೋಡ್ ಮಾಡಲಾದ ಮಾಹಿತಿಯನ್ನು ಪ್ರದರ್ಶಿಸುತ್ತದೆ;
  • get_exchange - ನಿರ್ದಿಷ್ಟ ಕರೆನ್ಸಿಯ ಬಗ್ಗೆ ಡೇಟಾವನ್ನು ಪ್ರದರ್ಶಿಸುತ್ತದೆ;
  • get_exchanges - ಮಾದರಿಯ ಪ್ರಕಾರ ಕರೆನ್ಸಿಗಳ ಪಟ್ಟಿಯನ್ನು ತೋರಿಸುತ್ತದೆ.

ಪರಿಣಾಮವಾಗಿ, pb.py ಫೈಲ್‌ನಲ್ಲಿನ ಕೋಡ್ ಈ ರೀತಿ ಕಾಣುತ್ತದೆ:

ಆಮದು ಮರು ಆಮದು ವಿನಂತಿಗಳನ್ನು ಆಮದು ಮಾಡಿ json URL = 'https://api.privatbank.ua/p24api/pubinfo?json&exchange&coursid=5' def load_exchange(): ಮರಳಿ json.loads(requests.get(URL).text) def get_exchange(ccy_key) load_exchange(): for exc in load_exchange(): if ccy_key == exc['ccy']: return exc return False def get_exchanges(ccy_pattern): result = [] ccy_pattern = re.escape(ccy_pattern) + '.*' for exc in load_exchange(): re.match(ccy_pattern, exc['ccy'], re.IGNORECASE) ಯಾವುದೂ ಅಲ್ಲ: result.append(exc) ಫಲಿತಾಂಶವನ್ನು ಹಿಂತಿರುಗಿಸಿ

ನಿರ್ದಿಷ್ಟಪಡಿಸಿದ ವಿನಂತಿಗಳಿಗೆ ಪ್ರೋಗ್ರಾಂ ಈ ಕೆಳಗಿನ ಪ್ರತಿಕ್ರಿಯೆಯನ್ನು ನೀಡಬಹುದು:

[ { ccy:"USD", base_ccy:"UAH", ಖರೀದಿ:"25.90000", ಮಾರಾಟ:"26.25000" }, {ccy:"EUR", base_ccy:"UAH", ಖರೀದಿ:"29.10000", ಮಾರಾಟ:"29.85000 " }, { ccy:"RUR", base_ccy:"UAH", ಖರೀದಿ:"0.37800", ಮಾರಾಟ:"0.41800" }, {ccy:"BTC", base_ccy:"USD", ಖರೀದಿ:"11220.0384", ಮಾರಾಟ: "12401.0950" } ]

ಹಂತ 2: @BotFather ನೊಂದಿಗೆ ಟೆಲಿಗ್ರಾಮ್ ಬಾಟ್ ಅನ್ನು ರಚಿಸಿ

@BotFather ಸೇವೆಯನ್ನು ಬಳಸಿಕೊಂಡು ಸಂದೇಶಗಳನ್ನು ಸ್ವೀಕರಿಸಲು ಮತ್ತು ಅವುಗಳಿಗೆ ಪ್ರತಿಕ್ರಿಯಿಸಲು ನೀವು ಪ್ರೋಗ್ರಾಂ ಅನ್ನು ರಚಿಸಬಹುದು. ಅವನ ಟೆಲಿಗ್ರಾಮ್ ಪುಟಕ್ಕೆ ಹೋಗಿ ಮತ್ತು / newbot ಆಜ್ಞೆಯನ್ನು ನಮೂದಿಸಿ. ಚಾಟ್‌ನಲ್ಲಿ ಸೂಚನೆಗಳು ಕಾಣಿಸಿಕೊಳ್ಳುತ್ತವೆ, ಅದರ ಪ್ರಕಾರ ನೀವು ಮೊದಲು ಬೋಟ್‌ನ ಹೆಸರನ್ನು ಬರೆಯಬೇಕು ಮತ್ತು ನಂತರ ಅದರ ವಿಳಾಸವನ್ನು ಬರೆಯಬೇಕು. ಬೋಟ್ ಖಾತೆಯನ್ನು ರಚಿಸಿದಾಗ, ಟೋಕನ್ ಹೊಂದಿರುವ ಸ್ವಾಗತ ಸಂದೇಶವು ಪರದೆಯ ಮೇಲೆ ಕಾಣಿಸಿಕೊಳ್ಳುತ್ತದೆ. ಹೆಚ್ಚಿನ ಸಂರಚನೆಗಾಗಿ, ಈ ಆಜ್ಞೆಗಳನ್ನು ಬಳಸಿ:

  • / ಸೆಟ್ ವಿವರಣೆ - ವಿವರಣೆ;
  • / setabouttext - ಹೊಸ ಬೋಟ್ ಬಗ್ಗೆ ಮಾಹಿತಿ;
  • / setuserpic - ಪ್ರೊಫೈಲ್ ಫೋಟೋ;
  • / ಸೆಟಿನ್ಲೈನ್ ​​- ಇನ್ಲೈನ್ ​​ಮೋಡ್;
  • /setcommands - ಆಜ್ಞೆಗಳ ವಿವರಣೆ.

ಕೊನೆಯ ಕಾನ್ಫಿಗರೇಶನ್ ಹಂತದಲ್ಲಿ, ನಾವು / ಸಹಾಯ ಮತ್ತು / ವಿನಿಮಯವನ್ನು ವಿವರಿಸುತ್ತೇವೆ. ಎಲ್ಲಾ ಹಂತಗಳು ಪೂರ್ಣಗೊಂಡಾಗ, ಕೋಡಿಂಗ್‌ಗೆ ತೆರಳುವ ಸಮಯ.

ಹಂತ 3: ಬಾಟ್ ಅನ್ನು ಹೊಂದಿಸುವುದು ಮತ್ತು ಪ್ರಾರಂಭಿಸುವುದು

config.py ಫೈಲ್ ಅನ್ನು ರಚಿಸೋಣ. ಅದರಲ್ಲಿ, ನೀವು ಅನನ್ಯ ಬೋಟ್ ಕೋಡ್ ಮತ್ತು ಪ್ರೋಗ್ರಾಂ ಮಾಹಿತಿಯನ್ನು ಕಂಡುಕೊಳ್ಳುವ ಸಮಯ ವಲಯವನ್ನು ನಿರ್ದಿಷ್ಟಪಡಿಸಬೇಕು.

ಟೋಕನ್ = '' # ನಿಮ್ಮ ಬೋಟ್‌ನ ಟೋಕನ್‌ನೊಂದಿಗೆ ಬದಲಾಯಿಸಿTIMEZONE = 'ಯುರೋಪ್/ಕೀವ್' TIMEZONE_COMMON_NAME = 'ಕೀವ್'

ಮುಂದೆ, ಹಿಂದೆ ಬರೆದ pb.py, ಲೈಬ್ರರಿಗಳು ಮತ್ತು ಇತರ ಅಗತ್ಯ ಘಟಕಗಳ ಆಮದುಗಳೊಂದಿಗೆ ನಾವು ಇನ್ನೊಂದು ಫೈಲ್ ಅನ್ನು ರಚಿಸುತ್ತೇವೆ. ಕಾಣೆಯಾದ ಲೈಬ್ರರಿಗಳನ್ನು ಪ್ಯಾಕೇಜ್ ಮ್ಯಾನೇಜ್ಮೆಂಟ್ ಸಿಸ್ಟಮ್ (ಪಿಪ್) ನಿಂದ ಸ್ಥಾಪಿಸಲಾಗಿದೆ.

ಆಮದು ಟೆಲಿಬೋಟಿಮ್ಪೋರ್ಟ್ ಕಾನ್ಫಿಜಿಮ್ಪೋರ್ಟ್ ಪಿಬಿಮ್ಪೋರ್ಟ್ ಡೇಟ್ಟೈಮ್ಇಮ್ಪೋರ್ಟ್ ಪೈಟ್ಜಿಮ್ಪೋರ್ಟ್ ಜೆಸೋನಿಮ್ಪೋರ್ಟ್ ಟ್ರೇಸ್ಬ್ಯಾಕ್ P_TIMEZONE = pytz.timezone(config.TIMEZONE) TIMEZONE_COMMON_NAME = ಕಾನ್ಫಿಗರ್.TIMEZONE_COMMON_NAME

ಬಾಟ್ ಅನ್ನು ರಚಿಸಲು pyTelegramBotApi ವಿಷಯವನ್ನು ಬಳಸೋಣ. ನಾವು ಸ್ವೀಕರಿಸಿದ ಟೋಕನ್ ಅನ್ನು ಈ ಕೆಳಗಿನ ಕೋಡ್ ಬಳಸಿ ಕಳುಹಿಸುತ್ತೇವೆ:

bot = telebot.TeleBot(config.TOKEN) bot.polling(none_stop=True)

None_stop ಪ್ಯಾರಾಮೀಟರ್ ವಿನಂತಿಗಳನ್ನು ನಿರಂತರವಾಗಿ ಕಳುಹಿಸುವುದನ್ನು ಖಚಿತಪಡಿಸುತ್ತದೆ. ವಿಧಾನದ ದೋಷಗಳಿಂದ ನಿಯತಾಂಕದ ಕಾರ್ಯಾಚರಣೆಯು ಪರಿಣಾಮ ಬೀರುವುದಿಲ್ಲ.

ಹಂತ 4: ಕಮಾಂಡ್ ಹ್ಯಾಂಡ್ಲರ್ ಅನ್ನು ಪ್ರಾರಂಭಿಸಿ

ಹಿಂದಿನ ಎಲ್ಲಾ ಹಂತಗಳನ್ನು ಸರಿಯಾಗಿ ಮಾಡಿದರೆ, ಬೋಟ್ ಕೆಲಸ ಮಾಡಲು ಪ್ರಾರಂಭಿಸಿದೆ. ಪ್ರೋಗ್ರಾಂ ನಿಯಮಿತವಾಗಿ ವಿನಂತಿಗಳನ್ನು ರಚಿಸುತ್ತದೆ ಏಕೆಂದರೆ ಅದು getUpdates ವಿಧಾನವನ್ನು ಬಳಸುತ್ತದೆ. none_stop ಅಂಶದೊಂದಿಗೆ ಸಾಲಿನ ಮೊದಲು, ನಮಗೆ /start ಆಜ್ಞೆಯನ್ನು ಪ್ರಕ್ರಿಯೆಗೊಳಿಸುವ ಕೋಡ್ ತುಂಡು ಅಗತ್ಯವಿದೆ:

@bot.message_handler(commands=['start']) def start_command(message): bot.send_message( message.chat.id, 'ಶುಭಾಶಯಗಳು! ನಾನು ನಿಮಗೆ ವಿನಿಮಯ ದರಗಳನ್ನು ತೋರಿಸಬಹುದು.n' + 'ವಿನಿಮಯ ದರಗಳನ್ನು ಪಡೆಯಲು / ಒತ್ತಿರಿ exchange.n' + 'ಸಹಾಯ ಪಡೆಯಲು /help ಒತ್ತಿರಿ.')

RџSЂRё ಆಜ್ಞೆಗಳು=['ಪ್ರಾರಂಭ'] ನಿಜಕ್ಕೆ ಸಮ start_command ಅನ್ನು ಕರೆಯಲಾಗುತ್ತದೆ. ಸಂದೇಶದ ವಿಷಯವು ಅಲ್ಲಿಗೆ ಹೋಗುತ್ತದೆ. ಮುಂದೆ, ನೀವು ಕಳುಹಿಸುವ ಕಾರ್ಯವನ್ನು ಕಾರ್ಯಗತಗೊಳಿಸಬೇಕಾಗಿದೆ_ಸಂದೇಶ ನಿರ್ದಿಷ್ಟ ಸಂದೇಶಕ್ಕೆ ಸಂಬಂಧಿಸಿದಂತೆ.

ಹಂತ 5: /ಸಹಾಯ ಕಮಾಂಡ್ ಹ್ಯಾಂಡ್ಲರ್ ಅನ್ನು ರಚಿಸಿ

/help ಆಜ್ಞೆಯನ್ನು ಬಟನ್ ಆಗಿ ಕಾರ್ಯಗತಗೊಳಿಸಬಹುದು. ಅದರ ಮೇಲೆ ಕ್ಲಿಕ್ ಮಾಡುವ ಮೂಲಕ, ಬಳಕೆದಾರರನ್ನು ಡೆವಲಪರ್‌ನ ಟೆಲಿಗ್ರಾಮ್ ಖಾತೆಗೆ ಕರೆದೊಯ್ಯಲಾಗುತ್ತದೆ. ಬಟನ್‌ಗೆ "ಡೆವಲಪರ್‌ಗೆ ಕೇಳಿ" ನಂತಹ ಹೆಸರನ್ನು ನೀಡಿ. send_message ವಿಧಾನಕ್ಕಾಗಿ ಬಳಕೆದಾರರನ್ನು ಲಿಂಕ್‌ಗೆ ಮರುನಿರ್ದೇಶಿಸುವ reply_markup ಪ್ಯಾರಾಮೀಟರ್ ಅನ್ನು ಹೊಂದಿಸಿ. ಕೀಬೋರ್ಡ್ ಅನ್ನು ರಚಿಸುವ ನಿಯತಾಂಕವನ್ನು ಕೋಡ್‌ನಲ್ಲಿ ಬರೆಯೋಣ (ಇನ್‌ಲೈನ್‌ಕೀಬೋರ್ಡ್‌ಮಾರ್ಕ್‌ಅಪ್). ನಿಮಗೆ ಕೇವಲ ಒಂದು ಬಟನ್ ಅಗತ್ಯವಿದೆ (InlineKeyboardButton).

ಅಂತಿಮ ಕಮಾಂಡ್ ಹ್ಯಾಂಡ್ಲರ್ ಕೋಡ್ ಈ ರೀತಿ ಕಾಣುತ್ತದೆ:

@bot.message_handler(commands=['help']) def help_command(message): keyboard = telebot.types.InlineKeyboardMarkup() keyboard.add( telebot.types.InlineKeyboardButton( 'ಡೆವಲಪರ್ ಅನ್ನು ಕೇಳಿ', url='ಸಮಾನ ಸಂದೇಶ профиль' ) ) bot.send_message( message.chat.id, '1) ಲಭ್ಯವಿರುವ ಕರೆನ್ಸಿಗಳ ಪಟ್ಟಿಯನ್ನು ಸ್ವೀಕರಿಸಲು /exchange.n' + '2) ಒತ್ತಿರಿ ನೀವು ಆಸಕ್ತಿ ಹೊಂದಿರುವ ಕರೆನ್ಸಿಯ ಮೇಲೆ ಕ್ಲಿಕ್ ಮಾಡಿ.n' + '3) ನೀವು ಮೂಲ ಮತ್ತು ಗುರಿ ಕರೆನ್ಸಿಗಳಿಗೆ ಸಂಬಂಧಿಸಿದ ಮಾಹಿತಿಯನ್ನು ಒಳಗೊಂಡಿರುವ ಸಂದೇಶವನ್ನು ಸ್ವೀಕರಿಸುತ್ತದೆ, ' + 'ಖರೀದಿ ದರಗಳು ಮತ್ತು ಮಾರಾಟ ದರಗಳು.n' + '4) ವಿನಂತಿಯ ಕುರಿತು ಪ್ರಸ್ತುತ ಮಾಹಿತಿಯನ್ನು ಸ್ವೀಕರಿಸಲು "ಅಪ್‌ಡೇಟ್" ಕ್ಲಿಕ್ ಮಾಡಿ. ' + 'ಬೋಟ್ ಹಿಂದಿನ ಮತ್ತು ಪ್ರಸ್ತುತ ವಿನಿಮಯ ದರಗಳ ನಡುವಿನ ವ್ಯತ್ಯಾಸವನ್ನು ಸಹ ತೋರಿಸುತ್ತದೆ.n' + '5) ಬೋಟ್ ಇನ್‌ಲೈನ್ ಅನ್ನು ಬೆಂಬಲಿಸುತ್ತದೆ. ಮಾದರಿ @ ಯಾವುದೇ ಚಾಟ್‌ನಲ್ಲಿ ಮತ್ತು ಕರೆನ್ಸಿಯ ಮೊದಲ ಅಕ್ಷರಗಳು.', reply_markup=keyboard )

ಟೆಲಿಗ್ರಾಮ್ ಚಾಟ್‌ನಲ್ಲಿ ಕೋಡ್ ಕ್ರಿಯೆ:

ಪೈಥಾನ್‌ನಲ್ಲಿ ಟೆಲಿಗ್ರಾಮ್ ಬೋಟ್. ಮೊದಲಿನಿಂದಲೂ ವಿನಿಮಯ ದರಗಳೊಂದಿಗೆ ಬೋಟ್ ಬರೆಯಲು ಸಂಪೂರ್ಣ ಮಾರ್ಗದರ್ಶಿ

ಹಂತ 6: /ಎಕ್ಸ್ಚೇಂಜ್ ಕಮಾಂಡ್ ಹ್ಯಾಂಡ್ಲರ್ ಅನ್ನು ಸೇರಿಸಲಾಗುತ್ತಿದೆ

ಚಾಟ್‌ನಲ್ಲಿ ಲಭ್ಯವಿರುವ ಕರೆನ್ಸಿಗಳ ಚಿಹ್ನೆಗಳೊಂದಿಗೆ ಬಟನ್‌ಗಳನ್ನು ಪ್ರದರ್ಶಿಸಲು ಈ ಹಂತದ ಅಗತ್ಯವಿದೆ. ಆಯ್ಕೆಗಳೊಂದಿಗೆ ಆನ್-ಸ್ಕ್ರೀನ್ ಕೀಬೋರ್ಡ್ ನಿಮಗೆ ತಪ್ಪುಗಳನ್ನು ತಪ್ಪಿಸಲು ಸಹಾಯ ಮಾಡುತ್ತದೆ. PrivatBank ರೂಬಲ್, ಡಾಲರ್ ಮತ್ತು ಯೂರೋ ಮಾಹಿತಿಯನ್ನು ಒದಗಿಸುತ್ತದೆ. InlineKeyboardButton ಆಯ್ಕೆಯು ಈ ರೀತಿ ಕಾರ್ಯನಿರ್ವಹಿಸುತ್ತದೆ:

  1. ಬಳಕೆದಾರರು ಬಯಸಿದ ಪದನಾಮದೊಂದಿಗೆ ಬಟನ್ ಅನ್ನು ಕ್ಲಿಕ್ ಮಾಡುತ್ತಾರೆ.
  2. getUpdates ಕಾಲ್‌ಬ್ಯಾಕ್ ಪಡೆಯುತ್ತದೆ (CallbackQuery).
  3. ಕೀಬೋರ್ಡ್ ಅನ್ನು ಒತ್ತುವುದನ್ನು ಹೇಗೆ ನಿರ್ವಹಿಸುವುದು ಎಂದು ತಿಳಿಯುತ್ತದೆ - ಒತ್ತಿದ ಬಟನ್ ಬಗ್ಗೆ ಮಾಹಿತಿಯನ್ನು ರವಾನಿಸಲಾಗುತ್ತದೆ.

/ ವಿನಿಮಯ ಹ್ಯಾಂಡ್ಲರ್ ಕೋಡ್:

@bot.message_handler(commands=['exchange']) def exchange_command(message): keyboard = telebot.types.InlineKeyboardMarkup() keyboard.row( telebot.types.InlineKeyboardButton('USD', callback_data='get-USD') ) keyboard.row( telebot.types.InlineKeyboardButton('EUR', callback_data='get-EUR'), telebot.types.InlineKeyboardButton('RUR', callback_data='get-RUR') ) bot.send_message( message.chat .id, 'ಆಯ್ಕೆಯ ಕರೆನ್ಸಿಯ ಮೇಲೆ ಕ್ಲಿಕ್ ಮಾಡಿ:', reply_markup=keyboard )

ಟೆಲಿಗ್ರಾಮ್‌ನಲ್ಲಿ ಕೋಡ್‌ನ ಫಲಿತಾಂಶ:

ಪೈಥಾನ್‌ನಲ್ಲಿ ಟೆಲಿಗ್ರಾಮ್ ಬೋಟ್. ಮೊದಲಿನಿಂದಲೂ ವಿನಿಮಯ ದರಗಳೊಂದಿಗೆ ಬೋಟ್ ಬರೆಯಲು ಸಂಪೂರ್ಣ ಮಾರ್ಗದರ್ಶಿ

ಹಂತ 7: ಅಂತರ್ನಿರ್ಮಿತ ಕೀಬೋರ್ಡ್ ಬಟನ್‌ಗಳಿಗಾಗಿ ಹ್ಯಾಂಡ್ಲರ್ ಅನ್ನು ಬರೆಯುವುದು

pyTelegramBot Api ಪ್ಯಾಕೇಜ್ @bot.callback_query_handler ಡೆಕೊರೇಟರ್ ಕಾರ್ಯವನ್ನು ಒಳಗೊಂಡಿದೆ. ಕಾಲ್‌ಬ್ಯಾಕ್ ಅನ್ನು ಫಂಕ್ಷನ್‌ಗೆ ಭಾಷಾಂತರಿಸಲು ಈ ಘಟಕವನ್ನು ವಿನ್ಯಾಸಗೊಳಿಸಲಾಗಿದೆ - API ಕರೆಯನ್ನು ಬಿಚ್ಚಿ ಮತ್ತು ಮರು-ಸೃಷ್ಟಿಸುತ್ತದೆ. ಇದನ್ನು ಈ ರೀತಿ ಉಚ್ಚರಿಸಲಾಗುತ್ತದೆ:

@bot.callback_query_handler(func=lambda call: True) def iq_callback(query): data = query.data if data.startswith('get-'): get_ex_callback(query)

get_ex_callback ವಿಧಾನವನ್ನು ಸಹ ಬರೆಯೋಣ:

def get_ex_callback(query): bot.answer_callback_query(query.id) send_exchange_result(query.message, query.data[4:])

ಮತ್ತೊಂದು ಉಪಯುಕ್ತ ವಿಧಾನವಿದೆ - answer_callback_query. ಗುಂಡಿಯನ್ನು ಒತ್ತುವ ಮತ್ತು ಪರದೆಯ ಮೇಲೆ ಫಲಿತಾಂಶವನ್ನು ಪ್ರದರ್ಶಿಸುವ ನಡುವಿನ ಲೋಡ್ ಅನ್ನು ತೆಗೆದುಹಾಕಲು ಇದು ಸಹಾಯ ಮಾಡುತ್ತದೆ. ಕೆಲವು ಕರೆನ್ಸಿ ಕೋಡ್ ಮತ್ತು ಸಂದೇಶವನ್ನು ರವಾನಿಸುವ ಮೂಲಕ ನೀವು send_exchange_query ಗೆ ಸಂದೇಶವನ್ನು ಕಳುಹಿಸಬಹುದು. ನಾವು send_exchange_result ಬರೆಯೋಣ:

def send_exchange_result(message, ex_code): bot.send_chat_action(message.chat.id, 'typing') ex = pb.get_exchange(ex_code) bot.send_message(message.chat.id, serialize_ex(ex), reply_markup=get_update ), parse_mode='HTML' )

ಚಾಟ್‌ಬಾಟ್ ಬ್ಯಾಂಕ್‌ನಿಂದ ವಿನಂತಿಯ ಫಲಿತಾಂಶವನ್ನು ಸ್ವೀಕರಿಸುತ್ತದೆ ಎಪಿಐ, ಸಂದರ್ಶಕರು "ಸಂದೇಶವನ್ನು ಟೈಪ್ ಮಾಡುವುದು" ಎಂಬ ಶಾಸನವನ್ನು ನೋಡುತ್ತಾರೆ. ನಿಜವಾದ ವ್ಯಕ್ತಿ ಉತ್ತರಿಸುತ್ತಿರುವಂತೆ ತೋರುತ್ತಿದೆ. ಪರದೆಯ ಮೇಲೆ ಅಂತಹ ಸೂಚಕವನ್ನು ಪ್ರದರ್ಶಿಸಲು, ನೀವು ಇನ್ಪುಟ್ ಸ್ಥಿತಿ ಸಾಲುಗಳನ್ನು ಸೇರಿಸುವ ಅಗತ್ಯವಿದೆ. ಮುಂದೆ, ನಾವು get_exchange ಅನ್ನು ಬಳಸುತ್ತೇವೆ - ಅದರ ಸಹಾಯದಿಂದ, ಪ್ರೋಗ್ರಾಂ ಕರೆನ್ಸಿ ಪದನಾಮವನ್ನು (ರೂಬಲ್ಸ್, ಯೂರೋಗಳು ಅಥವಾ ಡಾಲರ್ಗಳು) ಸ್ವೀಕರಿಸುತ್ತದೆ. send_message ಹೆಚ್ಚುವರಿ ವಿಧಾನಗಳನ್ನು ಬಳಸುತ್ತದೆ: serialize_ex ಕರೆನ್ಸಿಯನ್ನು ಮತ್ತೊಂದು ಸ್ವರೂಪಕ್ಕೆ ಪರಿವರ್ತಿಸುತ್ತದೆ ಮತ್ತು get_update_keyboard ಸಾಫ್ಟ್‌ಕೀಗಳನ್ನು ಹೊಂದಿಸುತ್ತದೆ ಅದು ಮಾಹಿತಿಯನ್ನು ನವೀಕರಿಸುತ್ತದೆ ಮತ್ತು ಕರೆನ್ಸಿ ಮಾರುಕಟ್ಟೆ ಡೇಟಾವನ್ನು ಇತರ ಚಾಟ್‌ಗಳಿಗೆ ಕಳುಹಿಸುತ್ತದೆ.

get_update_keyboard ಗಾಗಿ ಕೋಡ್ ಅನ್ನು ಬರೆಯೋಣ. ಎರಡು ಬಟನ್‌ಗಳನ್ನು ನಮೂದಿಸಬೇಕಾಗಿದೆ - ಟೈಪ್ ಮತ್ತು ಎಕ್ಸ್‌ಚೇಂಜ್‌ಗಾಗಿ ಟಿ ಮತ್ತು ಇ ಸ್ಟ್ಯಾಂಡ್. ಹಂಚಿಕೆ ಬಟನ್‌ಗಾಗಿ switch_inline_query ಐಟಂ ಅಗತ್ಯವಿದೆ ಇದರಿಂದ ಬಳಕೆದಾರರು ಹಲವಾರು ಚಾಟ್‌ಗಳಿಂದ ಆಯ್ಕೆ ಮಾಡಬಹುದು. ಡಾಲರ್, ರೂಬಲ್ ಅಥವಾ ಯೂರೋದ ಪ್ರಸ್ತುತ ವಿನಿಮಯ ದರವನ್ನು ಯಾರಿಗೆ ಕಳುಹಿಸಬೇಕೆಂದು ಸಂದರ್ಶಕರಿಗೆ ಆಯ್ಕೆ ಮಾಡಲು ಸಾಧ್ಯವಾಗುತ್ತದೆ.

def get_update_keyboard(ex): keyboard = telebot.types.InlineKeyboardMarkup() keyboard.row( telebot.types.InlineKeyboardButton( 'Update', callback_data=json.dumps({ 't': 'u', 'e': { ' b': ex['buy'], 's': ex['sale'], 'c': ex['ccy'] } ).replace(' ', '') ), telebot.types.InlineKeyboardButton ('Share', switch_inline_query=ex['ccy']) ) ಕೀಬೋರ್ಡ್ ಹಿಂತಿರುಗಿಸಿ

ಕೆಲವೊಮ್ಮೆ ಅಲ್ಪಾವಧಿಯಲ್ಲಿ ವಿನಿಮಯ ದರವು ಎಷ್ಟು ಬದಲಾಗಿದೆ ಎಂಬುದನ್ನು ನೀವು ನೋಡಬೇಕು. ಅಪ್‌ಡೇಟ್ ಬಟನ್‌ಗಾಗಿ ಎರಡು ವಿಧಾನಗಳನ್ನು ಬರೆಯೋಣ ಇದರಿಂದ ಬಳಕೆದಾರರು ಕೋರ್ಸ್‌ಗಳನ್ನು ಹೋಲಿಕೆಯಲ್ಲಿ ನೋಡಬಹುದು.

ವಿನಿಮಯ ದರಗಳ ನಡುವಿನ ವ್ಯತ್ಯಾಸವನ್ನು ಡಿಫ್ ಪ್ಯಾರಾಮೀಟರ್ ಮೂಲಕ ಧಾರಾವಾಹಿಗೆ ರವಾನಿಸಲಾಗುತ್ತದೆ.

ನಿಗದಿತ ವಿಧಾನಗಳು ಡೇಟಾವನ್ನು ನವೀಕರಿಸಿದ ನಂತರ ಮಾತ್ರ ಕಾರ್ಯನಿರ್ವಹಿಸುತ್ತವೆ, ಅವು ಕೋರ್ಸ್‌ನ ಮೊದಲ ಪ್ರದರ್ಶನದ ಮೇಲೆ ಪರಿಣಾಮ ಬೀರುವುದಿಲ್ಲ.

def serialize_ex(ex_json, diff = ಯಾವುದೂ ಇಲ್ಲ): ಫಲಿತಾಂಶ = '' + ex_json['base_ccy'] + ' -> ' + ex_json['ccy'] + ':nn' + 'ಖರೀದಿ: ' + ex_json['ಖರೀದಿ'] ವ್ಯತ್ಯಾಸವಿದ್ದಲ್ಲಿ: ಫಲಿತಾಂಶ += ' ' + serialize_exchange_diff(diff['buy_diff']) + 'n' + 'Sell: ' + ex_json['sale'] + ' ' + serialize_exchange_diff(diff['sale_diff']) + 'n' else: result += 'nSell: ' + ex_json['sale'] + 'n' ರಿಟರ್ನ್ ಫಲಿತಾಂಶ ಡೆಫ್ serialize_exchange_diff(diff): result = '' ವ್ಯತ್ಯಾಸವಾದರೆ > 0: ಫಲಿತಾಂಶ = '(' + str(diff) + ' "src="https://sworg/images/core/emoji/2.3/svg/2197.svg">" src="https://sworg/images /core/emoji/72x72/2197.png">" src="https://sworg/images/core/emoji/72x72/2197.png">)' elif ವ್ಯತ್ಯಾಸ < 0: ಫಲಿತಾಂಶ = '(' + str( ವ್ಯತ್ಯಾಸ)[1:] + ' "src="https://sworg/images/core/emoji/2.3/svg/2198.svg">" src="https://sworg/images/core/emoji/72x72 /2198.png">" src="https://sworg/images/core/emoji/72x72/2198.png">)' ಫಲಿತಾಂಶ ಹಿಂತಿರುಗಿ

ಸಂದರ್ಶಕರು ಡಾಲರ್ ವಿನಿಮಯ ದರವನ್ನು ತಿಳಿದುಕೊಳ್ಳಲು ಬಯಸುತ್ತಾರೆ ಎಂದು ಕಲ್ಪಿಸಿಕೊಳ್ಳಿ. ನೀವು ಸಂದೇಶದಲ್ಲಿ USD ಅನ್ನು ಆಯ್ಕೆ ಮಾಡಿದರೆ ಏನಾಗುತ್ತದೆ ಎಂಬುದು ಇಲ್ಲಿದೆ:

ಪೈಥಾನ್‌ನಲ್ಲಿ ಟೆಲಿಗ್ರಾಮ್ ಬೋಟ್. ಮೊದಲಿನಿಂದಲೂ ವಿನಿಮಯ ದರಗಳೊಂದಿಗೆ ಬೋಟ್ ಬರೆಯಲು ಸಂಪೂರ್ಣ ಮಾರ್ಗದರ್ಶಿ

ಹಂತ 8: ಅಪ್‌ಡೇಟ್ ಬಟನ್ ಹ್ಯಾಂಡ್ಲರ್ ಅನ್ನು ಕಾರ್ಯಗತಗೊಳಿಸಲಾಗುತ್ತಿದೆ

ಅಪ್‌ಡೇಟ್ ಬಟನ್‌ನೊಂದಿಗೆ ಕ್ರಿಯೆಗಳನ್ನು ನಿರ್ವಹಿಸಲು ಕೋಡ್ ಅನ್ನು ಬರೆಯೋಣ ಮತ್ತು ಅದಕ್ಕೆ iq_callback_method ಭಾಗವನ್ನು ಸೇರಿಸೋಣ. ಪ್ರೋಗ್ರಾಂ ಐಟಂಗಳು get ಪ್ಯಾರಾಮೀಟರ್‌ನೊಂದಿಗೆ ಪ್ರಾರಂಭವಾದಾಗ, ನೀವು get_ex_callback ಅನ್ನು ಬರೆಯಬೇಕು. ಇತರ ಸಂದರ್ಭಗಳಲ್ಲಿ, ನಾವು JSON ಅನ್ನು ಪಾರ್ಸ್ ಮಾಡುತ್ತೇವೆ ಮತ್ತು t ಕೀಲಿಯನ್ನು ಪಡೆಯಲು ಪ್ರಯತ್ನಿಸುತ್ತೇವೆ.

@bot.callback_query_handler(func=lambda call: True) def iq_callback(query): data = query.data if data.startswith('get-'): get_ex_callback(query) else: try: if json.loads(data)[ 't'] == 'u': edit_message_callback(query) ValueError ಹೊರತುಪಡಿಸಿ: ಪಾಸ್

t ಯು ಸಮನಾಗಿದ್ದರೆ, ನೀವು edit_message_callback ವಿಧಾನಕ್ಕಾಗಿ ಪ್ರೋಗ್ರಾಂ ಅನ್ನು ಬರೆಯಬೇಕಾಗುತ್ತದೆ. ಈ ಪ್ರಕ್ರಿಯೆಯನ್ನು ಹಂತ ಹಂತವಾಗಿ ವಿಭಜಿಸೋಣ:

  1. ಕರೆನ್ಸಿ ಮಾರುಕಟ್ಟೆಯ ಸ್ಥಿತಿಯ ಬಗ್ಗೆ ಅಪ್-ಟು-ಡೇಟ್ ಮಾಹಿತಿಯನ್ನು ಡೌನ್‌ಲೋಡ್ ಮಾಡಲಾಗುತ್ತಿದೆ (exchange_now = pb.get_exchange(data['c']).
  1. ವ್ಯತ್ಯಾಸದೊಂದಿಗೆ ಧಾರಾವಾಹಿಯ ಮೂಲಕ ಹೊಸ ಸಂದೇಶವನ್ನು ಬರೆಯುವುದು.
  2. ಸಹಿಯನ್ನು ಸೇರಿಸಲಾಗುತ್ತಿದೆ (get_edited_signature).

ಆರಂಭಿಕ ಸಂದೇಶವು ಬದಲಾಗದಿದ್ದರೆ, edit_message_text ವಿಧಾನವನ್ನು ಕರೆ ಮಾಡಿ.

def edit_message_callback(query): ಡೇಟಾ = json.loads(query.data)['e'] exchange_now = pb.get_exchange(data['c']) text = serialize_ex(exchange_now, get_exchange_diff( get_ex_from_iq_data(data), ವಿನಿಮಯ _n) + 'n' + get_edited_signature() ವೇಳೆ query.message: bot.edit_message_text(text, query.message.chat.id, query.message.message_id, reply_markup=get_update_keyboard(exchange_now), parse_mode. HTML'if : bot.edit_message_text( text, inline_message_id=query.inline_message_id, reply_markup=get_update_keyboard(exchange_now), parse_mode='HTML' )

JSON ಅನ್ನು ಪಾರ್ಸ್ ಮಾಡಲು get_ex_from_iq_data ವಿಧಾನವನ್ನು ಬರೆಯೋಣ:

def get_ex_from_iq_data(exc_json): ಹಿಂತಿರುಗಿ {'buy': exc_json['b'], 'sale': exc_json['s'] }

ನಿಮಗೆ ಇನ್ನೂ ಕೆಲವು ವಿಧಾನಗಳು ಬೇಕಾಗುತ್ತವೆ: ಉದಾಹರಣೆಗೆ, get_exchange_diff, ಇದು ಕರೆನ್ಸಿಗಳ ಬೆಲೆಯ ಬಗ್ಗೆ ಹಳೆಯ ಮತ್ತು ಹೊಸ ಮಾಹಿತಿಯನ್ನು ಓದುತ್ತದೆ ಮತ್ತು ವ್ಯತ್ಯಾಸವನ್ನು ಪ್ರದರ್ಶಿಸುತ್ತದೆ.

ಡೆಫ್ get_exchange_diff(ಕೊನೆಯ, ಈಗ): ಹಿಂತಿರುಗಿ { 'sale_diff': float("%.6f" % (float(ಈಗ['ಮಾರಾಟ'])) - float(last['sale']))), 'buy_diff': float ("%.6f" % (ಫ್ಲೋಟ್(ಈಗ['ಖರೀದಿ']) - ಫ್ಲೋಟ್(ಕೊನೆಯ['ಖರೀದಿ']))) }

ಕೊನೆಯದು, get_edited_signature, ಕೋರ್ಸ್ ಅನ್ನು ಕೊನೆಯದಾಗಿ ನವೀಕರಿಸಿದ ಸಮಯವನ್ನು ತೋರಿಸುತ್ತದೆ.

ಡೆಫ್ get_edited_signature(): ಹಿಂತಿರುಗಿ 'ನವೀಕರಿಸಲಾಗಿದೆ ' + str(datetime.datetime.now(P_TIMEZONE).strftime('%H:%M:%S')) + ' (' + TIMEZONE_COMMON_NAME + ')'

ಪರಿಣಾಮವಾಗಿ, ಸ್ಥಿರ ವಿನಿಮಯ ದರದೊಂದಿಗೆ ಬೋಟ್‌ನಿಂದ ನವೀಕರಿಸಿದ ಸಂದೇಶವು ಈ ರೀತಿ ಕಾಣುತ್ತದೆ:

ಪೈಥಾನ್‌ನಲ್ಲಿ ಟೆಲಿಗ್ರಾಮ್ ಬೋಟ್. ಮೊದಲಿನಿಂದಲೂ ವಿನಿಮಯ ದರಗಳೊಂದಿಗೆ ಬೋಟ್ ಬರೆಯಲು ಸಂಪೂರ್ಣ ಮಾರ್ಗದರ್ಶಿ

ಕೋರ್ಸ್ ಬದಲಾದಾಗ, ನಿಗದಿತ ನಿಯತಾಂಕಗಳ ಕಾರಣದಿಂದಾಗಿ ಮೌಲ್ಯಗಳ ನಡುವಿನ ವ್ಯತ್ಯಾಸಗಳನ್ನು ಸಂದೇಶದಲ್ಲಿ ಪ್ರದರ್ಶಿಸಲಾಗುತ್ತದೆ.

ಪೈಥಾನ್‌ನಲ್ಲಿ ಟೆಲಿಗ್ರಾಮ್ ಬೋಟ್. ಮೊದಲಿನಿಂದಲೂ ವಿನಿಮಯ ದರಗಳೊಂದಿಗೆ ಬೋಟ್ ಬರೆಯಲು ಸಂಪೂರ್ಣ ಮಾರ್ಗದರ್ಶಿ

ಹಂತ 9: ಎಂಬೆಡೆಡ್ ಮೋಡ್ ಅನುಷ್ಠಾನ

ಯಾವುದೇ ಚಾಟ್‌ಗೆ ಪ್ರೋಗ್ರಾಂನಿಂದ ಮಾಹಿತಿಯನ್ನು ತ್ವರಿತವಾಗಿ ಕಳುಹಿಸಲು ಅಂತರ್ನಿರ್ಮಿತ ಮೋಡ್ ಅಗತ್ಯವಿದೆ - ಈಗ ನೀವು ಭಾಗವಹಿಸುವವರಾಗಿ ಸಂಭಾಷಣೆಗೆ ಬೋಟ್ ಅನ್ನು ಸೇರಿಸುವ ಅಗತ್ಯವಿಲ್ಲ. ಟೆಲಿಗ್ರಾಮ್ ಬಳಕೆದಾರರು ಬೋಟ್ ಹೆಸರನ್ನು ಅದರ ಮುಂದೆ @ ಚಿಹ್ನೆಯೊಂದಿಗೆ ನಮೂದಿಸಿದಾಗ, ಪರಿವರ್ತನೆ ಆಯ್ಕೆಗಳು ಇನ್‌ಪುಟ್ ಲೈನ್‌ನ ಮೇಲೆ ಗೋಚರಿಸಬೇಕು. ನೀವು ಐಟಂಗಳಲ್ಲಿ ಒಂದನ್ನು ಕ್ಲಿಕ್ ಮಾಡಿದರೆ, ಡೇಟಾವನ್ನು ನವೀಕರಿಸಲು ಮತ್ತು ಕಳುಹಿಸಲು ಫಲಿತಾಂಶಗಳು ಮತ್ತು ಬಟನ್‌ಗಳೊಂದಿಗೆ ಬೋಟ್ ಸಂಭಾಷಣೆಗೆ ಸಂದೇಶವನ್ನು ಕಳುಹಿಸುತ್ತದೆ. ಕಳುಹಿಸುವವರ ಹೆಸರು "ಮೂಲಕ" ಎಂಬ ಶೀರ್ಷಿಕೆಯನ್ನು ಹೊಂದಿರುತ್ತದೆ ".

ಲೈಬ್ರರಿಯ ಮೂಲಕ InlineQuery ಅನ್ನು query_text ಗೆ ರವಾನಿಸಲಾಗುತ್ತದೆ. ಡೇಟಾದ ಶ್ರೇಣಿ ಮತ್ತು inline_query_id ಅಂಶವಾಗಿ ಹುಡುಕಾಟ ಫಲಿತಾಂಶಗಳನ್ನು ಹಿಂಪಡೆಯಲು ಉತ್ತರ_ಲೈನ್ ಕಾರ್ಯವನ್ನು ಕೋಡ್ ಬಳಸುತ್ತದೆ. ನಾವು get_exchanges ಅನ್ನು ಬಳಸುತ್ತೇವೆ ಇದರಿಂದ ವಿನಂತಿಯ ಮೇರೆಗೆ ಬೋಟ್ ಹಲವಾರು ಕರೆನ್ಸಿಗಳನ್ನು ಹುಡುಕುತ್ತದೆ.

@bot.inline_handler(func=lambda query: True) def query_text(inline_query): bot.answer_inline_query( inline_query.id, get_iq_articles(pb.get_exchanges(inline_query.query)) )

ಈ ವಿಧಾನದ ಮೂಲಕ InlineQueryResultArticle ನಿಂದ ವಸ್ತುಗಳನ್ನು ಹಿಂತಿರುಗಿಸುವ ಸಲುವಾಗಿ ನಾವು get_iq_articles ಗೆ ಡೇಟಾದ ಒಂದು ಶ್ರೇಣಿಯನ್ನು ರವಾನಿಸುತ್ತೇವೆ.

def get_iq_articles(exchanges): ಫಲಿತಾಂಶ = [] ಎಕ್ಸ್‌ಚೇಂಜ್‌ಗಳಲ್ಲಿ exc: result.append( telebot.types.InlineQueryResultArticle( id=exc['ccy'], title=exc['ccy'], input_message_content=telebot.types.InputTextMessageTextM (serialize_ex(exc), parse_mode='HTML' ), reply_markup=get_update_keyboard(exc), description='Convert ' + exc['base_ccy'] + ' -> ' + exc['ccy'], thumb_height=1 ) ) ಫಲಿತಾಂಶ ಹಿಂತಿರುಗಿ

ಈಗ, ನೀವು @ ಬರೆದರೆ ಮತ್ತು ಸಾಲಿನಲ್ಲಿ ಒಂದು ಸ್ಥಳ, ಹುಡುಕಾಟ ಫಲಿತಾಂಶಗಳು ಪರದೆಯ ಮೇಲೆ ಗೋಚರಿಸುತ್ತವೆ - ಲಭ್ಯವಿರುವ ಮೂರು ಕರೆನ್ಸಿಗಳಾಗಿ ಪರಿವರ್ತಿಸುವ ಆಯ್ಕೆಗಳು.

ಪೈಥಾನ್‌ನಲ್ಲಿ ಟೆಲಿಗ್ರಾಮ್ ಬೋಟ್. ಮೊದಲಿನಿಂದಲೂ ವಿನಿಮಯ ದರಗಳೊಂದಿಗೆ ಬೋಟ್ ಬರೆಯಲು ಸಂಪೂರ್ಣ ಮಾರ್ಗದರ್ಶಿ

ಬಳಕೆದಾರರು ಬಯಸಿದ ಕರೆನ್ಸಿಯನ್ನು ನಮೂದಿಸುವ ಮೂಲಕ ಫಲಿತಾಂಶಗಳನ್ನು ಫಿಲ್ಟರ್ ಮಾಡಬಹುದು.

ಪಟ್ಟಿಯಿಂದ ಬಯಸಿದ ಕರೆನ್ಸಿಯ ಮೇಲೆ ಕ್ಲಿಕ್ ಮಾಡಿದ ನಂತರ, ಬೋಟ್ ಬಳಕೆದಾರರು ಸ್ವೀಕರಿಸುವ ಅದೇ ಸಂದೇಶವನ್ನು ಚಾಟ್ ಸ್ವೀಕರಿಸುತ್ತದೆ. ನೀವು ನವೀಕರಣ ಬಟನ್ ಅನ್ನು ಸಹ ಬಳಸಬಹುದು. ಕೆಳಗಿನ ಚಿತ್ರವು ಬಾಟ್ ಮೂಲಕ ಕಳುಹಿಸಲಾದ ನವೀಕರಿಸಿದ ಸಂದೇಶವನ್ನು ತೋರಿಸುತ್ತದೆ:

ಪೈಥಾನ್‌ನಲ್ಲಿ ಟೆಲಿಗ್ರಾಮ್ ಬೋಟ್. ಮೊದಲಿನಿಂದಲೂ ವಿನಿಮಯ ದರಗಳೊಂದಿಗೆ ಬೋಟ್ ಬರೆಯಲು ಸಂಪೂರ್ಣ ಮಾರ್ಗದರ್ಶಿ

ತೀರ್ಮಾನ

ಟೆಲಿಗ್ರಾಮ್‌ಗಾಗಿ ಬೋಟ್ ಅನ್ನು ಹೇಗೆ ರಚಿಸುವುದು ಎಂದು ಈಗ ನಿಮಗೆ ತಿಳಿದಿದೆ. ನಿಮ್ಮ ಪ್ರೋಗ್ರಾಂಗೆ ನೀವು ಉಪಯುಕ್ತ ಪರಿಕರಗಳನ್ನು ಸೇರಿಸಬಹುದು: ಮೆಸೆಂಜರ್‌ನ ಇತರ ಬಳಕೆದಾರರಿಗೆ ಫಲಿತಾಂಶವನ್ನು ನವೀಕರಿಸಲು ಮತ್ತು ಕಳುಹಿಸಲು ಬಟನ್‌ಗಳು ಮತ್ತು ಅದರೊಂದಿಗೆ ಚಾಟ್‌ನ ಹೊರಗೆ ಬೋಟ್‌ನ ಕಾರ್ಯಗಳನ್ನು ಬಳಸಲು ನಿಮಗೆ ಅನುಮತಿಸುವ ಅಂತರ್ನಿರ್ಮಿತ ಮೋಡ್. ಈ ಸೂಚನೆಯ ಆಧಾರದ ಮೇಲೆ, ನೀವು ಯಾವುದೇ ಸರಳವಾದ ಬೋಟ್ ಅನ್ನು ಇತರ ಕಾರ್ಯಗಳೊಂದಿಗೆ ರಚಿಸಬಹುದು - ವಿನಿಮಯ ದರಗಳನ್ನು ತೋರಿಸುವುದು ಮಾತ್ರವಲ್ಲ. ಟೆಲಿಗ್ರಾಮ್‌ನಲ್ಲಿ ಗ್ರಾಹಕರೊಂದಿಗೆ ಚಾಟ್ ಮಾಡುವ ಮತ್ತು ಕಂಪನಿಯೊಂದಿಗೆ ಆಸಕ್ತಿ ಹೊಂದಿರುವ ಜನರ ಸಂಪರ್ಕವನ್ನು ಬಲಪಡಿಸುವ ಸ್ವಯಂಚಾಲಿತ ಸಹಾಯಕವನ್ನು ರಚಿಸಲು ಲೈಬ್ರರಿಗಳು, API ಗಳು ಮತ್ತು ಕೋಡ್‌ಗಳನ್ನು ಪ್ರಯೋಗಿಸಲು ಹಿಂಜರಿಯದಿರಿ.

1 ಕಾಮೆಂಟ್

  1. ಫ್ಯಾಂಟಾಸ್ಟಿಕಾ ಪ್ರಕಟಣೆ

ಪ್ರತ್ಯುತ್ತರ ನೀಡಿ