LINE WORKS SDK for Python
Talk API is defined in OpenAPI 3.1.0 (here).
This library uses code automatically generated by openapi-generator-cli
.
Python 3.11+
$ pip install line-works-sdk
dev version
https://pypi.org/project/line-works-sdk/#history
$ pip install line-works-sdk==x.x.devyyyymmddHHMM
import json
from line_works.client import LineWorks
from line_works.mqtt.enums.notification_type import NotificationType
from line_works.mqtt.enums.packet_type import PacketType
from line_works.mqtt.models.packet import MQTTPacket
from line_works.mqtt.models.payload.message import MessagePayload
from line_works.openapi.talk.models.flex_content import FlexContent
from line_works.tracer import LineWorksTracer
def receive_publish_packet(w: LineWorks, p: MQTTPacket) -> None:
payload = p.payload
if not isinstance(payload, MessagePayload):
return
if not payload.channel_no:
return
print(f"{payload!r}")
if payload.loc_args1 == "test":
w.send_text_message(payload.channel_no, "ok")
elif payload.loc_args1 == "/msg":
w.send_text_message(payload.channel_no, f"{payload!r}")
elif payload.loc_args1 == "/flex":
with open("src/sample_flex.json") as f:
j: dict = json.load(f)
w.send_flex_message(
payload.channel_no,
flex_content=FlexContent(alt_text="test", contents=j),
)
if payload.notification_type == NotificationType.NOTIFICATION_STICKER:
w.send_text_message(payload.channel_no, "スタンプ")
w.send_text_message(payload.channel_no, f"{payload.sticker=}")
w.send_sticker_message(payload.channel_no, payload.sticker)
WORKS_ID = "YOUR WORKS ID"
PASSWORD = "YOUR WORKS PASSWORD"
works = LineWorks(works_id=WORKS_ID, password=PASSWORD)
my_info = works.get_my_info()
print(f"{my_info=}")
tracer = LineWorksTracer(works=works)
tracer.add_trace_func(PacketType.PUBLISH, receive_publish_packet)
tracer.trace()
Linter & Formatter
- ruff
- mypy