Skip to main content

OkLine — an unofficial, high-level Python client / SDK for the LINE Chrome messaging API (CHROMEOS 3.7.2): send messages, QR & email login, X-Hmac signing, and full response recording.

Project description

OkLine

A high-level Python client / SDK for the LINE Chrome messaging API.

PyPI Python License: MIT Tests Endpoints

OkLine reproduces the API of the official LINE Chrome extension (CHROMEOS 3.7.2) — send and receive messages, log in by QR or e‑mail, and automate your own account from Python. The protocol is reproduced faithfully, including the mandatory X-Hmac signature (computed by LINE's real ltsm.wasm), so requests are byte‑for‑byte what the real client sends.

from okline import OkLine

api = OkLine(access_token="…", refresh_token="…")
print(api.get_profile())
api.send_text("u0123456789abcdef0123456789abcdef", "hello from python")

Features

  • All 77 endpoints — typed methods, or call any of them generically.
  • QR & e‑mail login — QR rendered as ASCII right in your terminal.
  • X-Hmac signing — handled automatically via the bundled WASM module.
  • Bot framework@bot.on_message, typed models, session persistence.
  • Response recording — capture, redact and export every request/response.
  • CLIpython -m okline … to call any endpoint from the shell.

Install

pip install okline

The bundled ltsm.wasm (for X-Hmac signing) ships inside the wheel, so that's all you need from Python. Optionally pip install qrcode to render the QR-login code in your terminal.

Prerequisites

  • Python 3.9+
  • Node.js 18+ on your PATH — required to compute the mandatory X-Hmac request signature (the real ltsm.wasm runs through a tiny Node bridge; details). Check with node --version.

Verify it works:

python -m okline version
Install from source instead
git clone https://github.com/NiceDayZc/okline.git
cd okline
pip install -e .          # editable install of the okline package + deps

First login (do this once; the session is then reusable):

okline login                 # scan the QR with the LINE app — saves tokens.json

Then just run okline for an interactive, menu-driven UI (pick actions by number), or use any of the ~30 subcommands directly:

okline                       # interactive menu (soft colours, no setup)
okline whoami
okline send <mid> "hello"
okline contacts --search soda
okline chatlog <chat-mid>    # reads and decrypts recent messages
okline -h                    # full command list

Quick start

from okline import OkLine, Bot

# log in once, reuse the session forever
api = OkLine()
api.auth.qr_login(on_qr=print)        # scan the QR with your phone
api.save_tokens("session.json")

# next time
api = OkLine.from_tokens_file("session.json")
api.send_text("c…group…mid", "hi from python")

# a 3-line echo bot
bot = Bot(api)
bot.on_message(lambda ctx: ctx.reply(f"you said: {ctx.text}"))
bot.run()

From the shell:

python -m okline qr-login --save tokens.json
python -m okline call Talk.TalkService.getProfile "[2]" --tokens-file tokens.json
python -m okline send <mid> "hello" --tokens-file tokens.json

Documentation

Guide
Getting started install, first call, the OkLine object
Authentication token reuse, e‑mail (RSA), QR login, refresh
Sending messages text, stickers, location, media, reactions
Receiving events the SSE stream and a simple bot
Building bots & helpers bot framework, typed models, sessions
Recording paste / export every response
CLI every python -m okline command
Architecture the protocol, X-Hmac, module map
Endpoint reference all 77 endpoints with their fields
Troubleshooting · Contributing

Disclaimer

OkLine is unofficial and not affiliated with LINE Corporation. Use it only with your own account and in compliance with LINE's Terms of Service. Treat tokens like passwords — see SECURITY.md.

License

MIT

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

okline-2.5.0.tar.gz (2.3 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

okline-2.5.0-py3-none-any.whl (2.3 MB view details)

Uploaded Python 3

File details

Details for the file okline-2.5.0.tar.gz.

File metadata

  • Download URL: okline-2.5.0.tar.gz
  • Upload date:
  • Size: 2.3 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.0

File hashes

Hashes for okline-2.5.0.tar.gz
Algorithm Hash digest
SHA256 3d8464584e359bb931b10e1a0e79b83ca132fc199e3a1b4f697f50d37fd223a3
MD5 a98726283e5185e7d38332c5df6eeba7
BLAKE2b-256 cdea6e0f3642e186aedef657d6e1c096bcabaf81348f0744a31b9c44bee9a337

See more details on using hashes here.

File details

Details for the file okline-2.5.0-py3-none-any.whl.

File metadata

  • Download URL: okline-2.5.0-py3-none-any.whl
  • Upload date:
  • Size: 2.3 MB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.0

File hashes

Hashes for okline-2.5.0-py3-none-any.whl
Algorithm Hash digest
SHA256 34638a2037a86cc6549fffb068d6a8c187fe3e7f923bef5691f5eb5362a80356
MD5 f2799f2ca19aa4ae76a9668f651b76c0
BLAKE2b-256 1bda46aa035a83ee69524db6cf0cd4ffd40e5323edff26fa87641e76a9df61f8

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page