用 Python 畅玩 Line bot - 21:LIFF(一)

LIFF 是一种 Line 提供让 line bot 可以不跳脱 Line 去开启网页的 API。

LIFF API 能做的功能可以参考官方文档,这篇则是会先介绍如何创建一个 LIFF 页面。

首先安装 liffpy 套件

$ pip install liffpy

liff 建立的时候需要分别给他 view_type 跟 view_url 两个参数,view_type 是要用来设定开启的网页的大小,有三种可以选择,可以参考下列表格。view_url 则是要给想转成 liff 格式的网址,需要是 https开头。

参数 大小
compact 50%
tall 80%
full 100%
from liffpy import (
	LineFrontendFramework as LIFF,
	ErrorResponse
)

liff_api = LIFF(<Your line channel token>)

......

@handler.add(MessageEvent)
def handle_message(event):
	if(event.message.text[:5] == "https"):
		try:
			#新增LIFF页面到LINEBOT中,取得liff id
			liff_id = liff_api.add(view_type="tall", view_url=event.message.text)
            print(liff_id)
            line_bot_api.reply_message(event.reply_token,
            TextSendMessage(text='https://liff.line.me/'+liff_id))
       except:
			print(err.message)

一个 line bot 最多可以用30个 liff id,当你忘记现在已经建立多少个 liff id,或是忘记 id 对应到的网页是什麽的时候,可以使用liff_api.get()去查看现在有的 liff id,liff_api.get()回传的内容会是一个包有很多个 dict 的 list,每个 dict 就对应一个 liff id。

@handler.add(MessageEvent)
def handle_message(event):
	if(event.message.text[:5] == "https"):
        ......
    elif(event.message.text == "查看id"):
        for j in liff_api.get():
			print(j['liffId'])

那如果已经用完30个 liff id 的额度,想要删除不用的 liff id,可以使用liff_api.delete(<id>)来删除指定 id,但如果你现在想把全部都删除清空,一个一个去找 id 删除太麻烦了,我们可以写一个 for 回圈去一次删除。

@handler.add(MessageEvent)
def handle_message(event):
	if(event.message.text[:5] == "https"):
        ......
    elif(event.message.text == "查看id"):
        for j in liff_api.get():
			print(j['liffId'])
	elif(event.message.text == "del"):
		print(type(liff_api.get()))
		for j in liff_api.get():
			liff_api.delete(j['liffId'])
		
		try:
			print(liff_api.get())
			line_bot_api.reply_message(event.reply_token,TextSendMessage(text=del_liff + "已删除"))
		except:
			line_bot_api.reply_message(event.reply_token,TextSendMessage(text="没有任何 LIFF"))

<<:  【Day 10】Repository 设计模式(Python)

>>:  [Refactoring] Chapter 2 Principles in Refactoring - Book Summary

CSS基础介绍(1)

来轻松聊聊 学会如何利用HTML编辑网页架构後,再来要进入让网页美化的CSS了。还不知道什麽是HTM...

[30天 Vue学好学满 DAY30] 总结 & 完赛感言

最後一篇文,挤出了一些觉得在开发上容易踩的雷以及要注意的事情 要使用、渲染的变数除了传递进入元件的,...

[Day21] 你问我爱你有多深? 用Python让手指爱心超进化!

之前用MediaPipe做过侦测到中指就打马赛克的主题, 下方有朋友留言提议能不能做「侦测到爱心就放...

全端入门Day10_全端之IDE环境首篇

前面介绍完了全端,今天要来介绍环境 什麽是环境呢,环境就是你要写程序之前所需要准备好的东西 意思就是...

Day 28: Incident Response on AWS

天有不测风云,任何单位就算已经完全做到了前面四大面向,你应该还是要在内部建立一套事件回应的机制,透过...