Kakaobot.py
Kakaobot.pyλ μΉ΄μΉ΄μ€ν‘ νλ¬μ€μΉκ΅¬ μλμλ΅ APIλ₯Ό λ μ½κ² μ¬μ©ν μ μλλ‘ λμμ£Όλ λΌμ΄λΈλ¬λ¦¬μ λλ€. Flaskλ₯Ό ν΅ν΄ ꡬνλμ΄ μμ΅λλ€.
νλ¬μ€μΉκ΅¬νμ 곡μ§μ λ°λ₯΄λ©΄ APIν μ€λ§νΈμ±ν μ λν μ§μμ΄ 2019λ 12μ 31μ μ’ λ£λλ©°, 2018λ 11μ 30μΌ μ΄νμλ APIν μ€λ§νΈμ±ν μ λν μ κ·λ±λ‘μ κΈμ§νκ² λ©λλ€. μ΄μ λ°λΌ λ³Έ νλ‘μ νΈλ μ¬κΈ°μ μ’ κ²°ν©λλ€. λ²κ·Έμμ λ±μ μ μ§λ³΄μμ λν μ΄μλ κ³μν΄μ λ°μ΅λλ€.
Table of Contents
Installation
λ¨Όμ ν¨ν€μ§λ₯Ό pypiλ‘λΆν° λ°μ΅λλ€.
pip install kakaobot.py
κ·Έλ€μ import kakaobot
μΌλ‘ λΆλ¬μ΅λλ€.
Example
https://github.com/Katinor/kakao_bot.py.prac
Usage
Basic structure
import kakaobot
app = kakaobot.Client(port = 7900)
##############################
# μνλ 컀맨λλ€μ λ£μ΄μ£ΌμΈμ #
##############################
app.run()
κΈ°λ³Έμ μΈ κ΅¬μ‘°λ λ€μκ³Ό κ°μ΅λλ€. kakaobot.Clientλ₯Ό μ μΈνκ³ , 컀맨λλ€μ λ±λ‘νκ³ , μ μΈν ν΄λΌμ΄μΈνΈκ° λμνλλ‘ ν©λλ€.
μλ₯Ό λ€μ΄ μ¬μ©μκ° "μλ " μ΄λΌκ³ νλ©΄ μ±λ΄μ΄ "λ°κ°μ" λΌκ³ λ΅λ³νλλ‘ λ§λλ λ°©λ²μ λ€μκ³Ό κ°μ΅λλ€.
import kakaobot
app = kakaobot.Client(port = 7900)
@app.add_command()
def μλ
():
return kakaobot.Message(text = "λ°κ°μ")
app.run()
μΉ΄μΉ΄μ€ν‘ νλ¬μ€μΉκ΅¬λ₯Ό μ¬μ©ν΄λ³΄λ©΄, ν μ€νΈ μ λ ₯μ λ§νμκ³ , λ²νΌμ μ ννλλ‘ νλ κ²½μ°λ μμ΅λλ€. μ΄ κ²½μ°μλ λ€μκ³Ό κ°μ΄ μ μΈν©λλ€.
import kakaobot
init_kb = kakaobot.Kboard(button = ["μλ
"])
app = kakaobot.Client(port = 7900, kboard = init_kb)
@app.add_command()
def μλ
():
return kakaobot.Message(text = "λ°κ°μ")
app.run()
Basic Class
μ¬κΈ°μ μλ κ°μ²΄λ€μ μΉ΄μΉ΄μ€ν‘ νλ¬μ€μΉκ΅¬ μλμλ΅ API μμ μ 곡νλ ν΅μ μλ¨κ³Ό κ°μ²΄λ€μ μΆμνν κ²μΌλ‘, μ±λ΄μ μ μνλλ° νμμ μΈ μμλ€μ λλ€.
Kakaobot
λ³λμ κ°μ²΄μ μμλμ§ μκ³ λͺ¨λμμ μ체μ μΌλ‘ μ 곡νλ μ μλ³μ λ° ν¨μμ λͺ©λ‘μ λλ€.
log_append( chat_id (string), text (string), maintype (string), sudtype (string) )
μ΄ ν¨μλ νμμ μΈ μμκ° μλκ³ λ΄λΆμμ μ¬μ©νλ ν¨μμ΄μ§λ§, λ³λ€λ₯Έ λ‘κ·Έ μμ± λ°©λ²μ μ¬μ©νμ§ μμΌμ λ€λ©΄ λμ μ¬μ©νμ€ μ μλλ‘ λ¬Έμλ‘ μμ±ν΄λκ² μ΅λλ€.
μ΄ λͺ¨λμ μ체μ μΌλ‘ λ‘κ·Έλ₯Ό μμ±ν΄ μ΄ λͺ¨λμ νΈμΆν νμΌμ λλ ν 리μ kakaobot_log
λΌλ ν΄λλ₯Ό λ§λ ν μ μ₯νκ² λμ΄ μμ΅λλ€. Client ν΄λμ€λ₯Ό μ μΈνκ³ runμΌλ‘ μλμν€κΈ° κΉμ§μ λ‘κ·Έκ° μ΄ ν¨μλ‘ λμνλ©°, μ±λ΄ μ μμμ μ΄ ν¨μλ₯Ό νΈμΆν΄ λ‘κ·Έλ₯Ό κ³μ μμ±ν μλ μμ΅λλ€.
λ‘κ·Έλ λ€μκ³Ό κ°μ κ΅¬μ‘°λ‘ μμ±λ©λλ€.
[(time)] trgd [<maintype>_<subtype>] from [<chat_id>] : <text>
Client
μΉ΄μΉ΄μ€ν‘ νλ¬μ€μΉκ΅¬ APIμ ν΅μ νλ ν΄λΌμ΄μΈνΈλ₯Ό μλ―Έν©λλ€. μ¦, μ±λ΄μ μλ―Έν©λλ€. kakaobot.pyλ Clientλ₯Ό μ μΈνκ³ Client.run()μ ν΅ν΄ μ±λ΄μ νμ±νμν΅λλ€.
맀κ°λ³μ | νμ | νμμ¬λΆ | μ€λͺ |
---|---|---|---|
port | int | Optional | μΉ΄μΉ΄μ€ν‘ νλ¬μ€μΉκ΅¬ APIμ ν΅μ ν μΉμλ²μ ν¬νΈλ²νΈμ λλ€. μλ΅μ Flaskμ κΈ°λ³Έ ν¬νΈλ²νΈμΈ 5000μ΄ μ μ©λ©λλ€. |
kboard | Kboard | Optional | μ±λ΄ μ¬μ©μκ° μ²μμΌλ‘ μ΄ μ±λ΄μ μ±ν λ°©μ λ€μ΄μ¬ λ μ μ©λλ Kboardμ λλ€. μλ΅μ λΉ Kboard κ° μ μ©λ©λλ€. |
error_text | Message | Optional | μ¬μ©μκ° μ±λ΄μκ² μ λ¬ν λ©μμ§κ° λ±λ‘λ λͺ
λ Ήμ΄λ€μ μ΄λκ²λ λ§μ‘±νμ§ μμ κ²½μ° μ¬μ©μμκ² μ λ¬λλ λ©μμ§μ
λλ€. μλ΅μ "Error occured" λΌκ³ μ±λ΄μ΄ λ§ν©λλ€. set_extra()λ‘ λ±λ‘λ ν¨μκ° μλ€λ©΄ μ΄ λ©μμ§κ° μ λ¬λμ§ μμ΅λλ€. (λ€λ₯Έ λ°μ½λ μ΄ν°λ‘ λ±λ‘λ λͺ λ Ήμ΄λ€μ λ§μ‘±νλ λ©μΈμ§λ₯Ό μ μΈν λͺ¨λ λ©μΈμ§κ° κ·Έ ν¨μλ₯Ό λͺ λ Ήμ΄μ²λΌ λ°λμν€κΈ° λλ¬Έμ λλ€.) |
λͺ
λ Ήμ΄ λ±λ‘μμ μ£Όμμ
λͺ¨λ λͺ
λ Ήμ΄ λ±λ‘ λ°μ½λ μ΄ν°μ λ±λ‘λλ ν¨μλ μ ν΄μ§ μ«μμ 맀κ°λ³μλ₯Ό νμλ‘ ν©λλ€.
κ·Έ ν¨μμ μ λ¬λλ 맀κ°λ³μμ€ μ²«λ²μ§Έλ μΈμ λ μ¬μ©μμ κ³ μ ν ν°κ°
μ΄λ©°, λλ¨Έμ§λ ν¨μ μκ°λΆλΆμ μ€λͺ
ν΄λμμ΅λλ€.
μ¬μ©μμ κ³ μ ν ν°κ°
μ μ£Όμνμ¬ μΉ΄μΉ΄μ€ μΈ‘μμ μ 곡νλ μ 보μ
λλ€. κ°μ μ¬μ©μλΌλ λ€λ₯Έ νλ¬μ€μΉκ΅¬λΌλ©΄ κ°μ΄ λ¬λΌμ§κΈ° λλ¬Έμ, ν ν°κ°μ΄ μ΄μ μ μ¬μ©μμ λμΌμΈμμ 보μ₯ν μλ μμ§λ§, κ°μΈμΌλ‘ νΉμ νλλ° μ¬μ©ν μλ μμ΅λλ€. user_keyμ λν μ€λͺ
μ νμΈνμΈμ.
add_command(command_list)
- λͺ λ Ήμ΄λ₯Ό λ±λ‘νκΈ° μν λ°μ½λ μ΄ν°μ λλ€. λ°λμ Message κ°μ²΄λ₯Ό λ°νν΄μΌλ§ ν©λλ€.
-
command_list
μ μ λ¬λλ°°μ΄μ μΈμ
λ€μ΄ λͺ λ Ήμ΄κ° λ©λλ€. μλ΅νλ©΄ λμμ΄ λλν¨μμ μ΄λ¦
μ΄ λͺ λ Ήμ΄κ° λ©λλ€. - μ΄ λ°μ½λ μ΄ν°λ‘ λ±λ‘λ ν¨μλ μ¬μ©μκ°
λͺ λ Ήμ΄λ₯Ό μ νν λ§νμ λ
λμν©λλ€. - μ΄ λ°μ½λ μ΄ν°λ‘ λ±λ‘λ ν¨μλ
νλμ 맀κ°λ³μλ₯Ό νμλ‘ ν©λλ€.
@app.add_command()
def μλ
(user_key): # μ±λ΄μ΄ "μλ
" μ΄λΌλ λ§μ λ€μ κ²½μ°
return kakaobot.Message(text = "λ°κ°μ") # "λ°κ°μ" λΌκ³ λ΅ν©λλ€.
@app.add_command(["μλ
","λ°κ°μ"])
def greeting(user_key):
return kakaobot.Message(text = "λλ λ°κ°μ!")
add_prefix_command(command_list, preserve_prefix)
- λͺ λ Ήμ΄λ₯Ό λ±λ‘νκΈ° μν λ°μ½λ μ΄ν°μ λλ€. λ°λμ Message κ°μ²΄λ₯Ό λ°νν΄μΌλ§ ν©λλ€.
-
command_list
μ μ λ¬λλ°°μ΄μ μΈμ
λ€μ΄ λͺ λ Ήμ΄κ° λ©λλ€. λ°°μ΄μ΄ μμΌλ©΄ λμμ΄ λλν¨μμ μ΄λ¦
μ΄ λͺ λ Ήμ΄κ° λ©λλ€. -
preserve_prefix
λ₯Ό μλ΅νλ©΄ κΈ°λ³Έκ°μΈ Falseκ° λ€μ΄κ°λλ€. - μ΄ λ°μ½λ μ΄ν°λ‘ λ±λ‘λ ν¨μλ μ¬μ©μκ°
λͺ λ Ήμ΄λ₯Ό 첫 μ΄μ λ‘ λ§νμ λ
λμν©λλ€. - μ΄ λ°μ½λ μ΄ν°λ‘ λ±λ‘λ ν¨μλ
λ κ°μ 맀κ°λ³μλ₯Ό νμλ‘ ν©λλ€.
preserve_prefixκ° κΈ°λ³Έκ°μΈ FalseμΌ κ²½μ°, λͺ λ Ήμ΄ λΆλΆμ΄ μλ¦° λ¬Έμμ΄μ΄ λ λ²μ§Έ 맀κ°λ³μλ‘ λ€μ΄κ°κ² λ©λλ€. μμλ λ€μκ³Ό κ°μ΅λλ€.
@app.add_prefix_command()
def λ°λΌν΄(user_key,content):
return kakaobot.Message(text = content)
μ΄ κ²½μ° "λ°λΌν΄"κ° μ±ν
μ 첫 λ¨μ΄μΌ λ λμν©λλ€. κ·Έλ¦¬κ³ "λ°λΌν΄"λ₯Ό μ μΈν λ΄μ©μ΄ 맀κ°λ³μλ‘ λ€μ΄μ΅λλ€.
μλ₯Ό λ€μ΄ "λ°λΌν΄ λλ λλνλ€"
μΌ κ²½μ° λ°λΌν΄κ° λΉ μ§κ³ "λλ λλνλ€"
κ° λ§€κ°λ³μλ‘ λ€μ΄μ΅λλ€.
λ°λλ‘ preserve_prefixκ° TrueλΌλ©΄ λ λ²μ§Έ 맀κ°λ³μμ λͺ¨λ λ΄μ©μ΄ λ€μ΄κ°λλ€.
@app.add_prefix_command(preserve_prefix = True)
def λ°λΌν΄(user_key,content):
return kakaobot.Message(text = content)
μ΄ κ²½μ° "λ°λΌν΄"κ° μ±ν
μ 첫 λ¨μ΄μΌ λ λμν©λλ€.
μλ₯Ό λ€μ΄ "λ°λΌν΄ λλ λλνλ€"
μΌ κ²½μ° "λ°λΌν΄ λλ λλνλ€"
κ° λ§€κ°λ³μλ‘ λ€μ΄μ΅λλ€.
add_regex_command(regex_string)
- λͺ λ Ήμ΄λ₯Ό λ±λ‘νκΈ° μν λ°μ½λ μ΄ν°μ λλ€. λ°λμ Message κ°μ²΄λ₯Ό λ°νν΄μΌλ§ ν©λλ€.
- λ°μ½λ μ΄ν°λ‘ μ λ¬λ
μ κ·μ νν
μ΄ λͺ λ Ήμ΄κ° λ©λλ€. - μ΄ λ°μ½λ μ΄ν°λ‘ λ±λ‘λ ν¨μλ μ¬μ©μκ°
λͺ λ Ήμ΄μ ν¨ν΄μ λ§μ‘±νλλ‘ λ§νμ λ
λμν©λλ€. - μ΄ λ°μ½λ μ΄ν°λ‘ λ±λ‘λ ν¨μλ
λ κ°μ 맀κ°λ³μλ₯Ό νμλ‘ ν©λλ€.
μ κ·μ ννμ μν΄ μλ¦° λΆλΆμ΄ λ λ²μ§Έ 맀κ°λ³μλ‘ λ€μ΄κ°κ² λ©λλ€. μμλ λ€μκ³Ό κ°μ΅λλ€.
@app.add_regex_command('^(?:((?:(?!μμ).)*)μμ )?((?:(?! μ°Ύμμ€).)*) μ°Ύμμ€')
def temp_regex_com(user_key,content):
return kakaobot.Message(text = "λ°κ°μ")
μ΄ κ²½μ° λ§€κ°λ³μλ‘ λ€μ΄κ°λ λ΄μ©μ 2κ°μ μμλ₯Ό κ°μ§ λ°°μ΄μ΄ λ©λλ€.
μλ₯Ό λ€μ΄ "ꡬκΈμμ μΉ΄ν°λ
Έλ₯΄ μ°Ύμμ€"
μΌ κ²½μ° "ꡬκΈ"
μ΄ content[0], "μΉ΄ν°λ
Έλ₯΄"
κ° content[1]μ΄ λ©λλ€.
λ λμκ°μ, "μΉ΄ν°λ
Έλ₯΄ μ°Ύμμ€"
μΌ κ²½μ° ""
μ΄ content[0], "μΉ΄ν°λ
Έλ₯΄"
κ° content[1]μ΄ λ©λλ€.
set_extra()
- λͺ λ Ήμ΄λ₯Ό λ±λ‘νκΈ° μν λ°μ½λ μ΄ν°μ λλ€. λ°λμ Message κ°μ²΄λ₯Ό λ°νν΄μΌλ§ ν©λλ€.
- μ΄ λ°μ½λ μ΄ν°λ‘ λ±λ‘λ ν¨μλ μ¬μ©μκ°
μμ μΈ λ°μ½λ μ΄ν°λ‘ λ±λ‘λμ§ μμ λ§μ νμ λ
λμν©λλ€. - μ΄ λ°μ½λ μ΄ν°λ‘ λ±λ‘λ ν¨μλ
λ κ°μ 맀κ°λ³μλ₯Ό νμλ‘ ν©λλ€.
μ¬μ©μκ° ν λ§μ΄ κ·Έλλ‘ λ λ²μ§Έ 맀κ°λ³μλ‘ λ€μ΄κ°κ² λ©λλ€. μμλ λ€μκ³Ό κ°μ΅λλ€.
@app.set_extra
def extra_func(user_key,content):
return kakaobot.Message(text = content)
set_friend_add_event()
-
μ¬μ©μκ° μ±λ΄μ μΉκ΅¬λ‘ μΆκ°ν κ²½μ°
μνλλ ν¨μλ₯Ό λ±λ‘νκΈ° μν λ°μ½λ μ΄ν°μ λλ€. - λ°νκ°μ΄ μμ΄λ λ©λλ€.
- μ΄ λ°μ½λ μ΄ν°λ‘ λ±λ‘λ ν¨μλ
νλμ 맀κ°λ³μλ₯Ό νμλ‘ ν©λλ€.
μΉ΄μΉ΄μ€ν‘ νλ¬μ€μΉκ΅¬ μλμλ΅ API μμλ μΉκ΅¬μΆκ°μμ μ±λ΄μ λμ¬λ₯Ό λ°κΏ μ μλλ‘ λμ΄ μμ΅λλ€. λ±λ‘λ ν¨μμμ Message κ°μ²΄λ₯Ό λ°ννλλΌλ μ±λ΄μ κ·Έ κ°μ²΄λ₯Ό μ λ¬νμ§ μμ΅λλ€.
set_friend_delete_event()
-
μ¬μ©μκ° μ±λ΄μ μΉκ΅¬λͺ©λ‘μμ μ μΈν κ²½μ°
μνλλ ν¨μλ₯Ό λ±λ‘νκΈ° μν λ°μ½λ μ΄ν°μ λλ€. - λ°νκ°μ΄ μμ΄λ λ©λλ€.
- μ΄ λ°μ½λ μ΄ν°λ‘ λ±λ‘λ ν¨μλ
νλμ 맀κ°λ³μλ₯Ό νμλ‘ ν©λλ€.
μΉ΄μΉ΄μ€ν‘ νλ¬μ€μΉκ΅¬ μλμλ΅ API μμλ μΉκ΅¬μμ μμ μ±λ΄μ λμ¬λ₯Ό λ°κΏ μ μλλ‘ λμ΄ μμ΅λλ€. λ±λ‘λ ν¨μμμ Message κ°μ²΄λ₯Ό λ°ννλλΌλ μ±λ΄μ κ·Έ κ°μ²΄λ₯Ό μ λ¬νμ§ μμ΅λλ€.
set_chatroom_leave_event()
-
μ¬μ©μκ° μ±λ΄κ³Όμ μ±ν λ°©μ ν΄μ₯ν κ²½μ°
μνλλ ν¨μλ₯Ό λ±λ‘νκΈ° μν λ°μ½λ μ΄ν°μ λλ€. - λ°νκ°μ΄ μμ΄λ λ©λλ€.
- μ΄ λ°μ½λ μ΄ν°λ‘ λ±λ‘λ ν¨μλ
νλμ 맀κ°λ³μλ₯Ό νμλ‘ ν©λλ€.
μΉ΄μΉ΄μ€ν‘ νλ¬μ€μΉκ΅¬ μλμλ΅ API μμλ μ±ν λ°© ν΄μ₯μμ μ±λ΄μ λμ¬λ₯Ό λ°κΏ μ μλλ‘ λμ΄ μμ΅λλ€. λ±λ‘λ ν¨μμμ Message κ°μ²΄λ₯Ό λ°ννλλΌλ μ±λ΄μ κ·Έ κ°μ²΄λ₯Ό μ λ¬νμ§ μμ΅λλ€.
run()
μ±λ΄μ μλμν€κΈ° μν μΉμλ²κ° μΌμ§λλ€.
Kboard
μ¬μ©μμ ν€λ³΄λ μμμ ννλ λ©μμ§ μ λ ₯λ°©μμ λν μ 보μ λλ€. λΉ Kboardλ μ¬μ©μμκ² μ£Όκ΄μ μλ΅μ νμ©νμ§λ§, νλμ λ²νΌμ΄λΌλ λ±λ‘λμ΄ μλ€λ©΄, μ¬μ©μλ κ°κ΄μ μλ΅λ§ ν μ μμ΅λλ€. (μ±ν μ°½μ΄ μ 겨μ§λλ€.)
맀κ°λ³μ | νμ | νμμ¬λΆ | μ€λͺ |
---|---|---|---|
button | string λλ List[string] | Optional | μ¬μ©μμκ² μ μν κ°κ΄μ μλ΅μ λͺ©λ‘μ λλ€. |
add_button(button)
κ°κ΄μ μλ΅μ μΆκ°ν©λλ€. μ μΈμμλ νλ ¬λ λ°μ§λ§, μ΄ ν¨μλ₯Ό μ΄μ©ν κ²½μ°μλ λ¬Έμμ΄λ§ λ°μ μ μμ΅λλ€.
맀κ°λ³μ | νμ | νμμ¬λΆ | μ€λͺ |
---|---|---|---|
button | string | Required | μΆκ°ν κ°κ΄μ μλ΅μ λλ€. |
Message
μ¬μ©μμκ² μ λ¬ν λ©μμ§ κ°μ²΄μ
λλ€. 컀맨λ λ±λ‘ λ°μ½λ μ΄ν°λ‘ λ°μ½λ μ΄ν
λ λͺ¨λ ν¨μλ€μ μ΄ κ°μ²΄λ₯Ό λ°νν΄μΌλ§ ν©λλ€.
μ£Όμ : μ΄ κ°μ²΄λ₯Ό λ°νν λ text, photo, message_button 3κ°μ§ μ€ νλ μ΄μμ΄ Message κ°μ²΄μ μ§μ λμ΄ μμ΄μΌλ§ ν©λλ€.
맀κ°λ³μ | νμ | νμμ¬λΆ | μ€λͺ |
---|---|---|---|
text | string | Optional | μ λ¬ν ν μ€νΈ μ λλ€. 1000μ μ νμ΄ μμ΅λλ€. |
photo | Photo | Optional | λ§νμ μ λ€μ΄κ° μ΄λ―Έμ§ μ 보μ λλ€. |
message_button | Mbutton | Optional | λ§νμ μ λΆλ λ§ν¬λ²νΌμ λλ€. |
keyboard | Kboard | Optional | μ΄ λ©μμ§λ₯Ό λ°μ μ¬μ©μμ ν€λ³΄λ μμμ ννλ λ©μμ§ μ λ ₯λ°©μμ λν μ 보λ₯Ό λ΄μ΅λλ€. μλ΅μ λΉ Kboard κ° μ μ©λ©λλ€. |
set_text(text)
λ©μμ§ κ°μ²΄μ ν μ€νΈλ₯Ό κ΅μ²΄ν©λλ€.
맀κ°λ³μ | νμ | νμμ¬λΆ | μ€λͺ |
---|---|---|---|
text | string | Required | κ΅μ²΄ν ν μ€νΈ μ λλ€. |
set_photo(photo)
λ©μμ§ κ°μ²΄μ μ¬μ§μ κ΅μ²΄ν©λλ€.
맀κ°λ³μ | νμ | νμμ¬λΆ | μ€λͺ |
---|---|---|---|
text | Photo | Required | κ΅μ²΄ν Photo κ°μ²΄μ λλ€. |
set_button(message_button)
λ©μμ§ κ°μ²΄μ λ§ν¬λ²νΌμ κ΅μ²΄ν©λλ€.
맀κ°λ³μ | νμ | νμμ¬λΆ | μ€λͺ |
---|---|---|---|
text | Mbutton | Required | κ΅μ²΄ν Mbutton κ°μ²΄μ λλ€. |
set_keyboard(keyboard)
λ©μμ§ κ°μ²΄μ μ λ ₯λ°©μμ κ΅μ²΄ν©λλ€.
맀κ°λ³μ | νμ | νμμ¬λΆ | μ€λͺ |
---|---|---|---|
text | Kboard | Required | κ΅μ²΄ν Kboard κ°μ²΄μ λλ€. |
Mbutton
λ§ν¬λ²νΌ(message_button) κ°μ²΄μ λλ€. Message κ°μ²΄μ ν¬ν¨λ κ²½μ° λ§νμ νλ¨μ λ§ν¬λ₯Ό κ°μ§ λ²νΌμ΄ μΆκ°λ©λλ€.
맀κ°λ³μ | νμ | νμμ¬λΆ | μ€λͺ |
---|---|---|---|
label | string | Required | λ§ν¬λ²νΌμ νμ΄νμ λλ€. |
url | string | Required | λ²νΌμ λλ₯Ό κ²½μ° μ°κ²°λλ μ£Όμμ λλ€. |
Photo
μ΄λ―Έμ§ κ°μ²΄μ λλ€. Message κ°μ²΄μ ν¬ν¨λ κ²½μ° λ§νμ μ μ΄λ―Έμ§κ° μΆκ°λ©λλ€.
μ£Όμ : μ΄λ―Έμ§λ jpg λλ png νμμ΄μ΄μΌλ§ ν©λλ€. μΆκ°λ‘ 500KB μ΄ν, μ¬μ΄μ¦ 720*630μ΄ κΆμ₯λ©λλ€.
맀κ°λ³μ | νμ | νμμ¬λΆ | μ€λͺ |
---|---|---|---|
url | string | Required | μ΄λ―Έμ§λ₯Ό λΆμ΄ μ¬ μ£Όμμ λλ€. |
width | int | Optional | μ΄λ―Έμ§μ λλΉμ λλ€. μλ΅μ 720μ΄ μ μ©λ©λλ€. |
height | int | Optional | μ΄λ―Έμ§μ λμ΄μ λλ€. μλ΅μ 630μ΄ μ μ©λ©λλ€. |