Skip to main content

niksms webservice

Project description

niksms Python SDK

این پکیج برای اتصال آسان به وب‌سرویس پیامک Kendez.NikSms (نسخه REST و gRPC) در پایتون طراحی شده است.

This package provides an easy-to-use Python SDK for connecting to the Kendez.NikSms SMS web service (REST & gRPC).

نصب / Installation

pip install niksms

ویژگی‌ها / Features

  • اتصال به REST API و gRPC
  • قابل استفاده در پروژه‌های مختلف پایتون
  • استفاده از آدرس‌های ثابت و قابل اعتماد
  • پشتیبانی از تمام متدهای ارسال پیامک (تکی، گروهی، PTP، OTP)
  • دریافت وضعیت پیامک‌ها و اطلاعات پنل

استفاده سریع / Quick Usage

REST Example

from niksms import NiksmsRestClient

client = NiksmsRestClient(api_key="YOUR_API_KEY")

# ارسال پیامک تکی
result = client.send_single(sender_number="5000...", phone="0912...", message="کد تایید شما: 1234")
print(result)

# دریافت اعتبار
credit = client.get_credit()
print(credit)

gRPC Example

from niksms import NiksmsGrpcClient

client = NiksmsGrpcClient(api_key="YOUR_API_KEY")

# ارسال پیامک تکی
result = client.send_single(sender_number="5000...", phone="0912...", message="کد تایید شما: 1234")
print(result)

# دریافت اعتبار
credit = client.get_credit()
print(credit)

مستندات کامل / Complete Documentation

متدهای ارسال پیامک / SMS Sending Methods

1. ارسال پیامک تکی / Send Single SMS

REST:

from niksms import NiksmsRestClient

client = NiksmsRestClient(api_key="YOUR_API_KEY")

result = client.send_single(
    sender_number="50004001",           # شماره فرستنده
    phone="09123456789",                # شماره گیرنده
    message="سلام! این یک پیام تست است.",  # متن پیام
    message_id="unique_id_123",         # شناسه یکتا (اختیاری)
    send_date="2024-01-01T10:30:00",    # تاریخ ارسال (اختیاری)
    send_type=1                         # نوع ارسال (اختیاری)
)
print(result)

gRPC:

from niksms import NiksmsGrpcClient

client = NiksmsGrpcClient(api_key="YOUR_API_KEY")

result = client.send_single(
    sender_number="50004001",
    phone="09123456789", 
    message="سلام! این یک پیام تست است.",
    message_id="unique_id_123",
    send_date="2024-01-01T10:30:00",
    send_type=1
)
print(result)

2. ارسال پیامک گروهی / Send Group SMS

REST:

recipients = [
    {"Phone": "09123456789", "MessageId": "msg_001"},
    {"Phone": "09123456790", "MessageId": "msg_002"},
    {"Phone": "09123456791", "MessageId": "msg_003"}
]

result = client.send_group(
    sender_number="50004001",
    message="پیام گروهی برای همه کاربران",
    recipients=recipients,
    send_date="2024-01-01T10:30:00",
    send_type=1
)
print(result)

gRPC:

recipients = [
    {"Phone": "09123456789", "MessageId": "msg_001"},
    {"Phone": "09123456790", "MessageId": "msg_002"},
    {"Phone": "09123456791", "MessageId": "msg_003"}
]

result = client.send_group(
    sender_number="50004001",
    message="پیام گروهی برای همه کاربران",
    recipients=recipients,
    send_date="2024-01-01T10:30:00",
    send_type=1
)
print(result)

3. ارسال PTP (هر نفر پیام متفاوت) / Send PTP SMS

REST:

recipients = [
    {"Phone": "09123456789", "Message": "سلام علی", "MessageId": "ptp_001"},
    {"Phone": "09123456790", "Message": "سلام رضا", "MessageId": "ptp_002"},
    {"Phone": "09123456791", "Message": "سلام مریم", "MessageId": "ptp_003"}
]

result = client.send_ptp(
    sender_number="50004001",
    recipients=recipients,
    send_date="2024-01-01T10:30:00",
    send_type=1
)
print(result)

gRPC:

recipients = [
    {"Phone": "09123456789", "Message": "سلام علی", "MessageId": "ptp_001"},
    {"Phone": "09123456790", "Message": "سلام رضا", "MessageId": "ptp_002"},
    {"Phone": "09123456791", "Message": "سلام مریم", "MessageId": "ptp_003"}
]

result = client.send_ptp(
    sender_number="50004001",
    recipients=recipients,
    send_date="2024-01-01T10:30:00",
    send_type=1
)
print(result)

4. ارسال پیامک OTP / Send OTP SMS

REST:

result = client.send_otp(
    sender_number="50004001",
    phone="09123456789",
    message="کد تایید شما: 1234",
    message_id="otp_001",
    send_date="2024-01-01T10:30:00",
    send_type=1
)
print(result)

gRPC:

result = client.send_otp(
    sender_number="50004001",
    phone="09123456789",
    message="کد تایید شما: 1234",
    message_id="otp_001",
    send_date="2024-01-01T10:30:00",
    send_type=1
)
print(result)

متدهای دریافت اطلاعات / Information Methods

1. دریافت اعتبار / Get Credit

REST:

credit_info = client.get_credit()
print(f"اعتبار باقی‌مانده: {credit_info}")

gRPC:

credit_info = client.get_credit()
print(f"اعتبار باقی‌مانده: {credit_info}")

2. دریافت تاریخ انقضای پنل / Get Panel Expire Date

REST:

expire_date = client.get_panel_expire_date()
print(f"تاریخ انقضای پنل: {expire_date}")

gRPC:

expire_date = client.get_panel_expire_date()
print(f"تاریخ انقضای پنل: {expire_date}")

3. دریافت وضعیت پیامک‌ها / Get SMS Status

REST:

message_ids = ["msg_001", "msg_002", "msg_003"]
status = client.get_sms_status(message_ids)
print(f"وضعیت پیامک‌ها: {status}")

gRPC:

message_ids = ["msg_001", "msg_002", "msg_003"]
status = client.get_sms_status(message_ids)
print(f"وضعیت پیامک‌ها: {status}")

مثال کامل / Complete Example

from niksms import NiksmsRestClient, NiksmsGrpcClient
import time

# تنظیمات
API_KEY = "YOUR_API_KEY"
SENDER_NUMBER = "50004001"

# استفاده از REST API
print("=== REST API Example ===")
rest_client = NiksmsRestClient(api_key=API_KEY)

# ارسال پیامک تکی
single_result = rest_client.send_single(
    sender_number=SENDER_NUMBER,
    phone="09123456789",
    message="سلام! این یک پیام تست از REST API است."
)
print("Single SMS Result:", single_result)

# ارسال پیامک گروهی
group_recipients = [
    {"Phone": "09123456789", "MessageId": "group_001"},
    {"Phone": "09123456790", "MessageId": "group_002"}
]
group_result = rest_client.send_group(
    sender_number=SENDER_NUMBER,
    message="پیام گروهی از REST API",
    recipients=group_recipients
)
print("Group SMS Result:", group_result)

# دریافت اعتبار
credit = rest_client.get_credit()
print("Credit:", credit)

# دریافت وضعیت پیامک‌ها
status = rest_client.get_sms_status(["group_001", "group_002"])
print("Status:", status)

# استفاده از gRPC API
print("\n=== gRPC API Example ===")
try:
    grpc_client = NiksmsGrpcClient(api_key=API_KEY)
    
    # ارسال پیامک OTP
    otp_result = grpc_client.send_otp(
        sender_number=SENDER_NUMBER,
        phone="09123456789",
        message="کد تایید شما: 1234",
        message_id="otp_001"
    )
    print("OTP SMS Result:", otp_result)
    
    # دریافت اطلاعات پنل
    panel_info = grpc_client.get_panel_expire_date()
    print("Panel Expire Date:", panel_info)
    
except Exception as e:
    print(f"gRPC Error: {e}")

مدیریت خطا / Error Handling

from niksms import NiksmsRestClient
import requests

client = NiksmsRestClient(api_key="YOUR_API_KEY")

try:
    result = client.send_single(
        sender_number="50004001",
        phone="09123456789",
        message="پیام تست"
    )
    print("Success:", result)
    
except requests.exceptions.HTTPError as e:
    print(f"HTTP Error: {e}")
except requests.exceptions.ConnectionError as e:
    print(f"Connection Error: {e}")
except Exception as e:
    print(f"General Error: {e}")

نکات مهم / Important Notes

  1. API Key: کلید API خود را از پنل کاربری دریافت کنید
  2. شماره فرستنده: شماره فرستنده باید از شماره‌های مجاز پنل شما باشد
  3. نوع ارسال: مقادیر مختلف send_type برای انواع مختلف پیامک
  4. تاریخ ارسال: فرمت تاریخ باید YYYY-MM-DDTHH:MM:SS باشد
  5. شناسه پیام: برای پیگیری وضعیت پیامک‌ها، شناسه یکتا تعیین کنید

پشتیبانی / Support

برای پشتیبانی و راهنمایی بیشتر با تیم فنی تماس بگیرید. 021-74552000

نسخه / Version: 1.0.0
آخرین به‌روزرسانی / Last Update: 2024

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

niksms-1.2.0.tar.gz (12.0 kB view details)

Uploaded Source

Built Distribution

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

niksms-1.2.0-py3-none-any.whl (11.7 kB view details)

Uploaded Python 3

File details

Details for the file niksms-1.2.0.tar.gz.

File metadata

  • Download URL: niksms-1.2.0.tar.gz
  • Upload date:
  • Size: 12.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.10

File hashes

Hashes for niksms-1.2.0.tar.gz
Algorithm Hash digest
SHA256 acd72bb3b86d58433555f70cc2166e2b59422f40ccc749e90ff40a54535f0af3
MD5 679fa488044a9ee890300f8a951e319f
BLAKE2b-256 e1f126c0889af16aec96a80765e8ab6c08b31ce6284f8d6e919041086f2b2071

See more details on using hashes here.

File details

Details for the file niksms-1.2.0-py3-none-any.whl.

File metadata

  • Download URL: niksms-1.2.0-py3-none-any.whl
  • Upload date:
  • Size: 11.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.10

File hashes

Hashes for niksms-1.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 e51b2fc6cb4c08056c3f344edb455b5070c08d3e34b11609dcce6159b2ee7ddd
MD5 a415de3228543c385faedfa0ad4c79ca
BLAKE2b-256 540313ecc9e74cdeb7cca50e666e32a0bb895e48e3c5e1b350f13ac94daa1e42

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