-
Notifications
You must be signed in to change notification settings - Fork 26
/
Copy pathcard_big_image.py
44 lines (34 loc) · 2.02 KB
/
card_big_image.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
from aiohttp import web
from aioalice import Dispatcher, get_new_configured_app
from aioalice.types import MediaButton
WEBHOOK_URL_PATH = '/my-alice-webhook/' # webhook endpoint
WEBAPP_HOST = 'localhost'
WEBAPP_PORT = 3001
dp = Dispatcher()
# если в commands передать строку, то она автоматически
# будет превращена в список из одного элемента - строки
@dp.request_handler(commands='без кнопки')
async def handle_no_button_request(alice_request):
return alice_request.response_big_image(
'Показываю тебе картинку!', # Текст
'123456/efa943ab0c03767ce857', # id изображения, загруженного через upload_image
'Заголовок изображения',
'Это описание изображения'
)
# Если кнопка не передана, клик по изображению не даст ничего
# Если кнопка передана, в ней должен быть указан URL, который
# открывается по нажатию на изображение
@dp.request_handler()
async def handle_all_requests(alice_request):
return alice_request.response_big_image(
'Показываю тебе картинку с кнопкой!', # Текст
'123456/efa943ab0c03767ce857', # id изображения, загруженного через upload_image
'Заголовок изображения',
'Это описание изображения',
# вместо объекта класса MediaButton можно передать словарь
# Поле payload может отсутствовать (третий агрумент)
MediaButton('Текст кнопки', 'https://yandex.ru', {'some': 'payload'})
)
if __name__ == '__main__':
app = get_new_configured_app(dispatcher=dp, path=WEBHOOK_URL_PATH)
web.run_app(app, host=WEBAPP_HOST, port=WEBAPP_PORT)