Skip to main content

OneChat Python Library Documentation

GitHub Actions Workflow Status PyPI - Version PyPI - Downloads

PyPI - Python Version PyPI - Wheel

GitHub License GitHub Repo stars

Overview

The OneChat Python library provides an interface for sending messages, broadcasting messages to multiple users, sending location information, sending stickers, and sending files through the OneChat API.

Features

  • Send Messages: Send messages to individual users or groups.
  • Send Files: Send files to users for easy sharing.
  • Send WebView: Send a webview to users for interactive content.
  • Broadcast Messages: Send messages to multiple recipients at once.
  • Send Locations: Share geographical locations with users.
  • Send Stickers: Send sticker messages to users.
  • Send Template: Send template messages to users.
  • Send Quick Reply: Send quick reply messages to users.
  • Send Image Carousel: Send an image carousel message to users.
  • Fetch Friends and Groups: Retrieve the complete list of friends and groups for a bot.
  • List All Friends: Get a list of all friends associated with the bot.
  • List Friend IDs: Retrieve the One IDs of all friends for easy identification.
  • List All Groups: Get a list of all groups associated with the bot.
  • List Group IDs: Retrieve the IDs of all groups for further actions.

Installation

To install the OneChat Python library, run the following command

pip install one-chat-api

Usage

To use the OneChat library, follow these steps

Import the Library

from one_chat import (
    init,
    send_message,
    send_file,
    broadcast_message,
    send_location,
    send_sticker,
    send_template,
    send_quickreply,
    send_image_carousel,
    fetch_friends_and_groups,
    list_all_friends,
    list_friend_ids,
    list_all_groups,
    list_group_ids,
)

or you can import all functions at once

from one_chat import *

Initialize the Library

Before using the functions, you need to initialize the library with your authorization token, default recipient, and bot id

init(
    "YOUR_AUTHORIZATION_TOKEN",  # Replace with your token
    "DEFAULT_RECIPIENT_ID",      # Replace with user ID or group ID
    "YOUR_BOT_ID"                # Replace with your bot ID
)

Send Messages

You can send a message to a specific user or group

response = send_message(message="Hello One!")
print("Send Message response:", response)

Send Files

You can send a file to a specific user or group

response = send_file(file_path="results.csv")
print("Send File response:", response)

Send WebView

response = send_webview(url="https://google.com/")
print("Send Webview response:", response)

Broadcast Messages

To send a message to multiple recipients

response = broadcast_message(message="Hello Multi!", to=["USER_ID_1", "USER_ID_2"])
print("Send Message Multi response:", response)

Send Locations

To share a location

response = send_location(latitude=13.7563, longitude=100.5018, address="Bangkok, Thailand")
print("Send Location Response:", response)

Send Stickers

To send a sticker

response = send_sticker(sticker_id="YOUR_STICKER_ID")
print("Send Sticker Response:", response)

Send Template

To send a template message

response = send_template(
        template=[
            {
                "image": "https://example.com/image.jpg",
                "title": "Your Title Here",
                "detail": "Your Detail Here",
                "choice": [
                    {
                        "label": "Yes",
                        "type": "text",
                        "payload": "Yes"
                    },
                    # ....
                ],
            },
        ]
    )
print("Send Template Response:", response)

Send Quick Reply

To send a quick reply message

response = send_quickreply(
        message="Hello, this is a quick reply message!",
        quick_reply=[
            {
                "label": "Register",
                "type": "text",
                "message": "I need to register",
                "payload": "Register",
            }
        ],
    )
print("Send Quick Reply Response:", response)

To send an image carousel message

response = send_image_carousel(
        elements=[
            {
                "type": "text",
                "image": "https://example.com/image1.jpg",
                "action": "hello",
                "payload": "Register",
                "sign": "false",
                "onechat_token": "false",
                "button": "click me",
            }
        ]
    )
print("Send Image Carousel Response:", response)

Example

Here’s a complete example of how to use the library

from one_chat import *

def main():
    # Initialize OneChat with your token, recipient, and bot ID
    init(
        "YOUR_AUTHORIZATION_TOKEN",
        "DEFAULT_RECIPIENT_ID",  # Send to (One ID) or (Group ID)
        "YOUR_BOT_ID"  # Bot ID
    )

    # Send a single message
    resp_msg = send_message(message="Hello One!")
    print("Send Message response:", resp_msg)

    # Send a file
    resp_file = send_file(file_path="results.csv")
    print("Send File response:", resp_file)

    # Send a webview
    resp_webview = send_webview(url="https://google.com/")
    print("Send Webview response:", resp_webview)

    # Broadcast a message to multiple users
    resp_msg_multi = broadcast_message(message="Hello Multi!", to=["USER_ID_1", "USER_ID_2"])
    print("Send Message Multi response:", resp_msg_multi)

    # Send a location
    resp_location = send_location(latitude=13.7563, longitude=100.5018, address="Bangkok, Thailand")
    print("Send Location Response:", resp_location)

    # Send a sticker
    resp_sticker = send_sticker(sticker_id="YOUR_STICKER_ID")
    print("Send Sticker Response:", resp_sticker)

    # Send Template
    resp_template = send_template(
        template=[
            {
                "image": "https://example.com/image.jpg",
                "title": "Your Title Here",
                "detail": "Your Detail Here",
                "choice": [
                    {
                        "label": "Yes",
                        "type": "text",
                        "payload": "Yes"
                    },
                    # ....
                ],
            },
        ]
    )
    print("Send Template Response:", resp_template)

    # Send Quick Reply
    resp_quick_reply = send_quickreply(
        message="Hello, this is a quick reply message!",
        quick_reply=[
            {
                "label": "Register",
                "type": "text",
                "message": "I need to register",
                "payload": "Register",
            }
        ],
    )
    print("Send Quick Reply Response:", resp_quick_reply)

    # Send Image Carousel
    resp_image_carousel = send_image_carousel(
        elements=[
            {
                "type": "text",
                "image": "https://example.com/image1.jpg",
                "action": "hello",
                "payload": "Register",
                "sign": "false",
                "onechat_token": "false",
                "button": "click me",
            }
        ]
    )
    print("Send Image Carousel Response:", resp_image_carousel)

    # Get a list of friends and groups
    friends_and_groups = fetch_friends_and_groups() # you can use fetch_friends_and_groups("BOT_ID") to get friends and groups of another bot
    print("Friends and Groups:", friends_and_groups)

    # Get a list of friends
    friends = list_all_friends() # you can use list_all_friends("BOT_ID") to get friends of another bot
    print("Friends:", friends)

    # Get the One ID of a friend
    one_id = list_friend_ids() # you can use list_friend_ids("BOT_ID") to get one id of a friend of another bot
    print("One ID of Friend:", one_id)

    # Get a list of groups
    groups = list_all_groups() # you can use list_all_groups("BOT_ID") to get groups of another bot
    print("Groups:", groups)

    # Get the group ID of a group
    group_id = list_group_ids() # you can use list_group_ids("BOT_ID") to get group id of a group of another bot
    print("Group ID of Group:", group_id)

if __name__ == "__main__":
    main()

Contributing

Contributions are welcome! Please see CONTRIBUTING.md and SECURITY.md. Run checks locally with:

ruff check .
black --check .
mypy one_chat
pytest

Examples

See runnable examples in examples/:

  • examples/quickstart.py — send a text message (uses env ONECHAT_TOKEN, ONECHAT_TO, ONECHAT_BOT_ID)
  • examples/broadcast.py — broadcast to multiple users (uses env ONECHAT_TOKEN, ONECHAT_BOT_ID, ONECHAT_USERS)

Metadata

Release files for one-chat-api 0.4.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for one-chat-api 0.4.1
File Size Uploaded Provenance Actions
one_chat_api-0.4.1.tar.gz 12.9 kB Without provenance Details for one_chat_api-0.4.1.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for one-chat-api 0.4.1
File Interpreter ABI Platform Actions
one_chat_api-0.4.1-py3-none-any.whl Python 3 none any Details for one_chat_api-0.4.1-py3-none-any.whl

Total release size: 26.3 kB

Release files / one_chat_api-0.4.1.tar.gz

Download URL one_chat_api-0.4.1.tar.gz
Size 12.9 kB
Tags Source
SHA-256 checksum
How to use checksums
565b437629dfd7b1ef5dcdd8fb604954ff9eaa888670ded6cbc0bd662eb9b362
BLAKE2b-256 checksum
How to use checksums
7c29385de08527f95c1fae13c16e622db30b79fd2893772cf222cda3d599d3d2
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.7

Release files / one_chat_api-0.4.1-py3-none-any.whl

Download URL one_chat_api-0.4.1-py3-none-any.whl
Size 13.4 kB
Tags Python 3
SHA-256 checksum
How to use checksums
b32e9b704799e9e80215b3f9299fe2d03c807f4f9742281e24004e524581d6b2
BLAKE2b-256 checksum
How to use checksums
6a2ff8d789557294506de649acaedbb8e7acb9692b443c0a1057abbbf10572b0
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.7

Security for one-chat-api 0.4.1

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page