Metadata-Version: 2.4
Name: nexacon-sdk
Version: 1.0.0
Summary: Nexacon Python SDK - External Integration with nx_token Authentication
Home-page: https://github.com/nexacon/nexacon-python-sdk
Author: Nexacon
Author-email: support@nexacon.tech
Project-URL: Bug Reports, https://github.com/nexacon/nexacon-python-sdk/issues
Project-URL: Source, https://github.com/nexacon/nexacon-python-sdk
Project-URL: Documentation, https://docs.nexacon.com
Keywords: nexacon sdk api messaging calls devices rooms presence
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Developers
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.7
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Requires-Python: >=3.7
Description-Content-Type: text/markdown
Requires-Dist: requests>=2.28.0
Dynamic: author
Dynamic: author-email
Dynamic: classifier
Dynamic: description
Dynamic: description-content-type
Dynamic: home-page
Dynamic: keywords
Dynamic: project-url
Dynamic: requires-dist
Dynamic: requires-python
Dynamic: summary

# Nexacon Python SDK

Python SDK for Nexacon API - External Integration with nx_token Authentication

## Installation

```bash
pip install nexacon-sdk
```

## Quick Start

The SDK uses external authentication with `nx_token`. No username/password required.

```python
from nexacon import NexaconClient

# Initialize client with nx_token (external authentication)
client = NexaconClient(
    nx_token="your_nx_token",  # Required - your external authentication token
    api_key="your_api_key",
    secret_key="your_secret_key",
    base_url="https://nxservice.quantumvision-tech.com/api/v1.0"
)

# Verify token and get user info
user = client.auth.verify_token()
print(f"Authenticated as: {user}")

# Send message
client.messaging.send(to="+255788811191", message="Hello!")

# Initiate call
call_url = client.calls.initiate_call(
    to="+255788811191",
    call_type="video",
    room="my-room"
)

# Register device for push notifications
client.devices.register(
    fcm_token="device_fcm_token",
    platform="android"
)

# Manage rooms (group chats)
rooms = client.rooms.list()
new_room = client.rooms.create(title="My Group", description="Group chat")
client.rooms.add_member(new_room["name"], nxid="user_nxid")

# Check user presence
presence = client.presence.get(user="user_nxid")
```

## Features

- **External Authentication**: nx_token-based authentication (no username/password)
- **Messaging**: Send/receive messages, manage contacts
- **Calls**: Initiate audio/video calls, group calls
- **Devices**: Register devices for push notifications
- **Rooms**: Create and manage group chat rooms
- **Presence**: Check user online status

## Documentation

Full documentation at [docs.nexacon.com](https://docs.nexacon.com)

## License

MIT License - see LICENSE file for details.
