κ°œλ°œκ΄€λ ¨/PHP

[PHP] ν…”λ ˆκ·Έλž¨ 봇 메세지 보내기 #2

🐻곰이🐻 2022. 10. 28.
728x90

μ•ˆλ…•ν•˜μ„Έμš” κ³°μ΄μ—μš”!

 

μ €λ²ˆ μ‹œκ°„μ—” ν…”λ ˆκ·Έλž¨ 봇 생성에 λŒ€ν•΄μ„œ ν¬μŠ€νŒ…μ„ ν–ˆμ—ˆλŠ”λ°μš”!

 

μ˜€λŠ˜μ€ 봇이 λ‚˜μ—κ²Œ λ©”μ‹œμ§€λ₯Ό λ³΄λ‚΄λŠ” 방법을 μ•Œμ•„λ³΄λ €κ³  ν•©λ‹ˆλ‹€.

 

 

[PHP] ν…”λ ˆκ·Έλž¨ 봇 λ§Œλ“€κΈ° #1

μ•ˆλ…•ν•˜μ„Έμš” κ³°μ΄μ—μš”! μ˜€λžœλ§Œμ— ν¬μŠ€νŒ…μ΄λ„€μš”~~ μš”μ¦˜ λ°”λΉ μ„œ 정신이 μ—†μŠ΅λ‹ˆλ‹€ γ…Žγ…Ž λ‹€λ“€ 잘 지내고 κ³„μ‹ κ°€μš”? μ˜€λŠ˜μ€ ν…”λ ˆκ·Έλž¨ 봇 λ§Œλ“œλŠ” 방법에 κ΄€λ ¨ν•΄μ„œ ν¬μŠ€νŒ…μ„ 써보렀고 ν•©λ‹ˆλ‹€. λ‹€μš΄λ‘œλ“œ

easy-developmentbear.tistory.com

아직 생성 λͺ»ν•˜μ‹  뢄듀이 κ³„μ‹€κΉŒ 봐 링크 μ˜¬λ €λ“œλ¦½λ‹ˆλ‹€.

 

μš°μ„ μ μœΌλ‘œ ν…”λ ˆκ·Έλž¨ 봇 μƒμ„±ν–ˆλ‹€κ³  ν•΄μ„œ 끝이 μ•„λ‹™λ‹ˆλ‹€.

 

λ©”μ‹œμ§€λ₯Ό 보낼 μˆ˜λ„ 받을 μˆ˜λ„ μžˆμ–΄μ•Ό ν•΄μš”.

 

λ°© 고유 id μ•Œμ•„μ˜€κΈ°

 

λ‚΄κ°€ ν˜„μž¬ μ±„νŒ…ν•˜κ³  μžˆλŠ” λ΄‡μ˜ λ°© λ²ˆν˜ΈλŠ” κ³ μœ κ°’μœΌλ‘œ 가지고 μžˆμŠ΅λ‹ˆλ‹€.

 

ν™•μΈν•˜λŠ” 방법은

 

https://api.telegram.org/bot{봇토큰}/getUpdates

 

μœ„ μ£Όμ†Œμ— bot_token뢀뢄에 μ €λ²ˆ μ‹œκ°„μ— λ§μ”€λ“œλ Έλ˜ μ€‘μš”ν–ˆλ˜ 뢀뢄인

 

API TOKEN값을 λ„£μ–΄μ£Όλ©΄ λ©λ‹ˆλ‹€.

 

μ €μ˜ 봇 토큰 값은

 

5695678451:AAEBBcGX3ZWCQG248E2Reo1x6HKqlc-IiDM

 

μž…λ‹ˆλ‹€.

 

λŒ€μž…ν•΄μ„œ μ„€λͺ…λ“œλ¦¬λ©΄

 

https://api.telegram.org/bot5695678451:AAEBBcGX3ZWCQG248E2Reo1x6HKqlc-IiDM/getUpdates 

 

μ΄λ ‡κ²Œ λ©λ‹ˆλ‹€.

 

κΌ­ μ € 쀑간 λΆ€λΆ„ bot뒀에 토큰이 λΆ™μ–΄μ•Ό ν•΄μš”!

 

그리고 url 뒀에 λΆ™λŠ” getUpdatesλŠ” 무엇인가?

 

ν…”λ ˆκ·Έλž¨μ— μš°λ¦¬κ°€ λ©”μ‹œμ§€λ₯Ό 보내면 λΈŒλΌμš°μ €λ‘œ 톡신을 ν•˜μ—¬ λ°›λŠ” λ°©μ‹μž…λ‹ˆλ‹€.

 

μ΄λŸ¬ν•œ 방법은 Polling 방식이라고 ν•©λ‹ˆλ‹€.

 

 

Polling μ΄λž€?

 

-ν•˜λ‚˜μ˜ μž₯치(λ˜λŠ” ν”„λ‘œκ·Έλž¨)κ°€ 좩돌 νšŒν”Ό λ˜λŠ” 동기화 처리 등을 λͺ©μ μœΌλ‘œ λ‹€λ₯Έ μž₯치(λ˜λŠ” ν”„λ‘œκ·Έλž¨)의 μƒνƒœλ₯Ό 주기적으둜 κ²€μ‚¬ν•˜μ—¬ μΌμ •ν•œ 쑰건을 λ§Œμ‘±ν•  λ•Œ μ†‘μˆ˜μ‹  λ“±μ˜ 자료처리λ₯Ό ν•˜λŠ” 방식을 λ§ν•œλ‹€.

이 방식은 λ²„μŠ€, λ©€ν‹°ν¬μΈνŠΈ ν˜•νƒœμ™€ 같이 μ—¬λŸ¬ 개의 μž₯μΉ˜κ°€ 동일 νšŒμ„ μ„ μ‚¬μš©ν•˜λŠ” μƒν™©μ—μ„œ 주둜 μ‚¬μš©λœλ‹€.

μ„œλ²„μ˜ μ œμ–΄ μž₯치(λ˜λŠ” ν”„λ‘œκ·Έλž¨)λŠ” 순차적으둜 각 단말 μž₯치(λ˜λŠ” ν”„λ‘œκ·Έλž¨)에 νšŒμ„ μ„ μ‚¬μš©ν•˜κΈ° μ›ν•˜λŠ”μ§€λ₯Ό λ¬Όμ–΄λ³Έλ‹€.

 

μš°μ„  μ§€κΈˆμ€ μ€‘μš”ν•œ 게 μ•„λ‹™λ‹ˆλ‹€.

 

κ·Έλƒ₯ κ°œλ…λ§Œ μ•Œκ³  κ°€λ©΄ 될 것 κ°™μŠ΅λ‹ˆλ‹€.

 

동기화λ₯Ό μœ„ν•΄ μΌμ •ν•œ 주기둜 μš”μ²­ν•œλ‹€λΌκ³  μ•Œκ³  κ³„μ‹œλ©΄ 될 것 κ°™μ•„μš”.

 

μ˜€μž‰?? 아무 값도 μ—†λ„€μš”.

 

λ΄‡μ—κ²Œ λ§ν•΄λ΄…μ‹œλ‹€.

 

μ €λŠ” test μ΄λ ‡κ²Œ λ³΄λƒˆμ–΄μš”!

 

그리고 μœ„μ— μ μ–΄λ“œλ Έλ˜ μ£Όμ†Œλ‘œ λ‹€μ‹œ 가보면

 

{"ok":true,"result":[{"update_id":308932715,
"message":{"message_id":4,"from":{"id":904936661,"is_bot":false,"first_name":"\ubbfc\uc6b1","last_name":"\uc9c4","language_code":"ko"},"chat":{"id":904936661,"first_name":"\ubbfc\uc6b1","last_name":"\uc9c4","type":"private"},"date":1666840756,"text":"test"}}]}

 

μ΄λ ‡κ²Œ μ°ν˜€μžˆλŠ” κ±Έ λ³Ό 수 μžˆμŠ΅λ‹ˆλ‹€.

 

μ—¬κΈ°μ„œ κ°€μž₯ μ€‘μš”ν•œ 건 방의 고유 idλ₯Ό μ•Œμ•„μ™€μ•Ό 봇이 제 방을 μ°Ύμ•„μ„œ 말해쀄 수 μžˆμŠ΅λ‹ˆλ‹€.

 

이게 μ €μ˜ λ°© 고유 idμž…λ‹ˆλ‹€.

 

idκ°€ λ§Žμ•„μ„œ ν—·κ°ˆλ¦¬μ‹€μˆ˜ μžˆλŠ”λ° μ €λ ‡κ²Œ λ©”μ‹œμ§€κ°€ test인 곳에 보면 chat 뢀뢄에 λ°°μ—΄λ‘œ id값이 λ“€μ–΄κ°€ μžˆμŠ΅λ‹ˆλ‹€.

 

제 방에 고유 μ•„μ΄λ””λŠ”

904936661

μž…λ‹ˆλ‹€.

 

그럼 μ €μ˜ λ°© 아이디도 μ•Œμ•˜κ² λ‹€ 봇이 μ €μ—κ²Œ 말을 걸어보도둝 ν•˜κ² μŠ΅λ‹ˆλ‹€.

 

말 걸기

 

https://api.telegram.org/bot{봇토큰}/sendmessage?text={할말}&chat_id={고유id} 

 

μ΄λ ‡κ²Œ λŒ€μž…ν•΄μ„œ μš”μ²­ν•΄λ³΄μ‹œλ©΄ λ©λ‹ˆλ‹€.

 

https://api.telegram.org/bot5695678451:AAEBBcGX3ZWCQG248E2Reo1x6HKqlc-IiDM/sendmessage?text=MSG&chat_id=904936661 

 

MSGλΌλŠ” textλ₯Ό μš”μ²­ν•΄λ³΄μ•˜μ–΄μš” κ²°κ³ΌλŠ”

 

봇이 μ €μ—κ²Œ MSG라고 λŒ€λ‹΅ν•΄μ£Όμ—ˆμŠ΅λ‹ˆλ‹€.

 

textλΆ€λΆ„λ§Œ λ°”κΏ”μ„œ μš”μ²­ν•˜μ‹œλ©΄ 봇과 λŒ€ν™”ν•˜λŠ” κ²ƒμ²˜λŸΌ λ©λ‹ˆλ‹€.

 

μ—¬κΈ°μ„œ ν¬μŠ€νŒ…μ„ λ§ˆμΉ˜λ„λ‘ ν•˜κ² μŠ΅λ‹ˆλ‹€.

 

κΆκΈˆν•œ 점 μžˆμœΌμ‹œλ©΄ λŒ“κΈ€μ— λ‚¨κ²¨μ£Όμ„Έμš”!

λ°˜μ‘ν˜•

λŒ“κΈ€