跟着AI 学 AI, 开发一个ChatBot, 完整图文版(3)Templatet 图片和视频轮播

先上架构图:由AI生成

本次内容首先需要在 from linebot.v3.messaging import ( 导入更多内容:

文章的一些属性和名词解释,没有做太多详细说明,具体可参考API 文件

from linebot.v3.messaging import (
    Configuration,
    ApiClient,
    MessagingApi,
    ReplyMessageRequest,
    #这三个增加到此处
    TemplateMessage,
    ButtonsTemplate,
#增加
    PushMessageRequest,
    BroadcastRequest,
    MulticastRequest,
    TextMessage,
# 为其它更多事件添加导入
    Emoji, #表情符号,
    VideoMessage,#视频信息
    AudioMessage,#音频信息
    LocationAction,#地址信息
    StickerMessage,# 
    ImageMessage,   # 图片信息
#增加 template 相关。
    TemplateMessage,
    ConfirmTemplate,
    CarouselTemplate,
    CarouselColumn,
    ButtonsTemplate,
    ImageCarouselColumn,
    ImageCarouselTemplate,
    MessageAction,
    URIAction,
    PostbackAction,
    DatetimePickerAction
    
)
  • 第一个函数 是 confirm
@handler.add(MessageEvent,message=TextMessageContent)
def handle_message(event):
    text = event.message.text
    with ApiClient(configuration) as api_client:
        line_bot_api = MessagingApi(api_client)
        # confirm template
        if text=="confirm":
            confirm_template = ConfirmTemplate(
              text='今天学习AI 开发了吗?',  #确认对话的标题
              actions=[
                  MessageAction(label='Yes', text='Yes'), # MessageAction 有标签和text 两个属性,单击返回的是text内容
                  MessageAction(label='No',  text='No')
              ]
            )
            template_message=TemplateMessage(
                alt_text='Confirm alt text',
                template=confirm_template
            )
            line_bot_api.reply_message(
                ReplyMessageRequest(
                    reply_token=event.reply_token,
                    messages=[template_message] # 调用定义好的 template_message 方法。
                )
            )

执行效果:

第二个函数 Buttons

# button Template
        elif text =='Buttons':
            #url= request.url_root +'/MoreType/1.jpg'# 由于一直报错,我使用的博文中的图片。
            url= "https://i-blog.csdnimg.cn/direct/369fc618763c4e6088e5722ac5dfe340.png"
            app.logger.info('url='+ url)
            buttons_template = ButtonsTemplate(
                thumbnail_image_url=url,
                title="示范",
                text="详细说明",
                actions=[
                    # URI 属性label 和 uri
                    URIAction(label='connect',uri='https://i-blog.csdnimg.cn/direct/369fc618763c4e6088e5722ac5dfe340.png'),
                    PostbackAction(label='Back Value', data='ping', displayText ="transfered"),
                    MessageAction(label='To "Hello"', text="Hello"),
                    DatetimePickerAction(label="select time",data="Time",mode="datetime")                 
                ])
            template_message= TemplateMessage(
                alt_text = "This is a buttons template",
                template=buttons_template
            )
            line_bot_api.reply_message(
                ReplyMessageRequest(
                    reply_token= event.reply_token,
                    messages=[template_message]
                )
            )

执行效果:

第四个属性:

# carousel 
        elif text == 'Carousel':
            url= request.url_root +'/MoreType/2.png'# 由于一直报错,我使用的博文中的图片。 # MoreType
            url= url.replace("http","https")
            url= "https://i-blog.csdnimg.cn/direct/369fc618763c4e6088e5722ac5dfe340.png"
            app.logger.info('url='+ url)
            carousel_template = CarouselTemplate(
                columns=[
                    CarouselColumn(
                        thumbnail_image_url=url,
                        title="No.1",
                        text="这是第一项的描述",
                        actions=[
                           URIAction(
                               label='按我前往Google',
                               uri="https://www.google.com"
                           ) 
                        ]
                    ),
                    CarouselColumn(
                        thumbnail_image_url=url,
                        title="No.2",
                        text="这是第二项的描述",
                        actions=[
                            URIAction(
                                label="Go to Bing",
                                uri="https://www.bing.com"
                            )
                        ]
                    )
                ]
            )
            carousel_message = TemplateMessage(
                alt_text = "This is Carousel Template",
                template=carousel_template
            )
            line_bot_api.reply_message(
                ReplyMessageRequest(
                    reply_token= event.reply_token,
                    messages=[carousel_message]
                )
            )              

执行效果

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值