30%تخفیف جهت حمایت از کسب و کارها
فرصت باقی مانده تا پایان تخفیف خرید
00 : 00 : 00

sdk ارسال پیامک python

اتصال ساده و خوانا به API پیامک در پروژه‌ های Python

sdk ارسال پیامک python برای برنامه‌هایی مناسب است که به نصب سریع با pip، ساختار روشن و ارتباط مستقیم با API پیامک در محیط پایتون نیاز دارند.

sdk ارسال پیامک python

پنل پیامکی دائمی؛ تمدید سالیانه رایگان

یک‌بار فعال‌سازی، استفاده بدون دغدغه

دریافت 20% تخفیف بیشتر از ربات تلگرام
مشاوره قبل از خرید پنل پیامکی
کارشناسان فروش آرتا پیامک آماده پاسخگویی هستند
پاسخگویی فعال
چت آنلاین
پاسخگویی فروش ۹ تا ۱۸ • چت آنلاین در دسترس است
Python SDK آرتا پیامک برای توسعه سریع و یکپارچه

sdk ارسال پیامک python برای چه پروژه‌هایی انتخاب بهتری است؟

اگر به دنبال پکیج پیامک پایتون برای اسکریپت‌های سبک، سرویس‌های داخلی یا اتصال مستقیم پروژه به پنل هستید، این کتابخانه ارسال پیامک Python با ساختار ساده‌ی Client، نصب سریع با pip و متدهای مشخص برای Webservice، Pattern و VOTP، مسیر شروع را برای تیم‌های پایتونی کوتاه‌تر می‌کند. برای بررسی بیشتر می‌توانید صفحات SDK پیامک، رمز یکبار مصرف، api مستندات پیامک otp و نمونه کدهای ارسال پیامک را ببینید.

مناسب برای اسکریپت‌ها و سرویس‌های کم‌پیچیدگی

این Python SMS library برای پروژه‌هایی مناسب است که می‌خواهند اتصال Python به پنل پیامک را با تنظیمات ساده انجام دهند؛ مخصوصاً زمانی که هدف، فراخوانی مستقیم متدهایی مثل send_webservice، send_pattern و send_votp بدون لایه‌های اضافه است.

خوانا برای تیم‌های پایتونی و توسعه سریع

اگر در پروژه به کد قابل فهم و توسعه‌پذیر نیاز دارید، این کتابخانه ارسال پیامک Python با امضای متدهای روشن، Type Hint و بازگرداندن پاسخ به‌صورت دیکشنری خام، برای تیم‌هایی که می‌خواهند منطق ارسال پیامک با Python را ساده و شفاف نگه دارند، انتخاب مناسبی است.

شروع سریع نصب از طریق pip و مقداردهی مستقیم Client(api_key) برای راه‌اندازی سریع
سناریوهای کاربردی مناسب برای ارسال پیامک پترن با پایتون، اعلان‌های سیستمی و سناریوهای VOTP در پروژه‌های واقعی
اتصال منعطف دارای Base URL پیش‌فرض و امکان تعریف آدرس سفارشی برای اتصال API پیامک به اسکریپت Python

تحلیل ماژول تست‌های خودکار

python-sdk/ippanel/tests/test_client.py

هدف از ایجاد ماژول تست

در پکیج آرتا پیامک، تست‌نویسی با استفاده از کتابخانه unittest استاندارد پایتون انجام شده است. هدف از این ماژول، تضمین صحت عملکرد کلاینت و جلوگیری از بروز رگرسیون (تغییرات ناخواسته در عملکرد) هنگام توسعه‌های بعدی است.

ساختار کلاس TestIPPanelClient

این کلاس با ارث‌بری از unittest.TestCase، تمامی تست‌های مربوط به هسته کلاینت را مدیریت می‌کند:

  • متد setUp: پیش از اجرای هر تست، یک نمونه از Client با api_key تستی ساخته می‌شود تا محیطی ایزوله برای تست فراهم شود.
  • متد test_init: صحتِ مقداردهیِ کلید API و تنظیمات پیش‌فرضِ آدرس سرور (Base URL) را تأیید می‌کند.

استراتژی Mocking (شبیه‌سازی شبکه)

@patch("requests.Session.post")

از آنجایی که نمی‌خواهیم هنگام تست، درخواست‌های واقعی به سرورهای آرتا پیامک ارسال کنیم، از دکوراتور @patch استفاده شده است. این ابزار به ما اجازه می‌دهد متد requests.Session.post را "شبیه‌سازی" (Mock) کنیم تا پاسخ‌های دلخواه خود را بدون درگیری با اینترنت دریافت کنیم و عملکرد کلاینت را در برخورد با پاسخ‌های API بسنجیم.

نحوه اجرای تست‌ها

برای اجرای این تست‌ها در محیط توسعه، کافی است دستور زیر را در ترمینال پروژه اجرا کنید:

python -m unittest discover ippanel/tests

این دستور به صورت خودکار تمام فایل‌های تستی که با test_ شروع می‌شوند را پیدا کرده و اجرا می‌کند.

معرفی پکیج پایتون آرتا پیامک (Python SDK)

python-sdk-main/ippanel/__init__.py

فایل `__init__.py` در پکیج پایتون نقش کلیدی در تعریف و معرفی اولیه کتابخانه به اکوسیستم پایتون ایفا می‌کند. این فایل مشخص می‌کند که هنگام وارد کردن (import) پکیج، چه اجزایی در دسترس توسعه‌دهندگان قرار خواهند گرفت و همچنین اطلاعات پایه‌ای مانند نسخه پکیج را در خود نگه می‌دارد.

توضیحات فنی فایل `__init__.py`:


"""
IPPanel Python SDK - A client for integrating with IPPanel service.
"""

from .client import Client

__version__ = '0.1.0'

__all__ = ['Client']
    

تحلیل بخش‌های مختلف کد:

  • Docstring اولیه (Triple Quoted String):

    """ IPPanel Python SDK - A client for integrating with IPPanel service. """ این بخش، که به عنوان "docstring" شناخته می‌شود، اولین خطی است که پایتون هنگام بارگذاری پکیج با آن مواجه می‌شود. این توضیحات، ماهیت و هدف اصلی پکیج را به صورت خلاصه بیان می‌کند و برای نمایش در مستندات یا هنگام استفاده از تابع `help()` در پایتون کاربرد دارد. در اینجا، به روشنی بیان شده که این پکیج یک کلاینت برای اتصال به سرویس IPPanel است.

  • وارد کردن کلاس اصلی (Import Statement):

    from .client import Client این خط، کلاس `Client` را از ماژول (فایل) دیگری با نام `client.py` که در همان دایرکتوری پکیج قرار دارد، وارد می‌کند. این عمل باعث می‌شود که پس از `import ippanel`، کلاس `Client` مستقیماً قابل دسترسی باشد، بدون نیاز به ذکر نام ماژول آن (یعنی نیازی به `from ippanel.client import Client` نباشد).

  • تعریف نسخه پکیج (Version Definition):

    __version__ = '0.1.0' متغیر `__version__` یک قرارداد استاندارد در پایتون است که نسخه فعلی پکیج را نگهداری می‌کند. این نسخه برای مدیریت وابستگی‌ها، انتشار به‌روزرسانی‌ها و اطلاع‌رسانی به کاربران در مورد تغییرات اساسی یا جزئی بسیار حیاتی است. نسخه `'0.1.0'` نشان‌دهنده نسخه اولیه و پایدار (اما نه نهایی) پکیج است.

  • تعریف نمایه عمومی (Public API Definition):

    __all__ = ['Client'] لیست `__all__` مشخص می‌کند که هنگام استفاده از دستور `from ippanel import *`، چه نام‌هایی (کلاس‌ها، توابع، متغیرها) باید از این پکیج استخراج (export) شوند. در این مورد، تنها کلاس `Client` در این لیست قرار گرفته است، که به معنای آن است که این کلاس، بخش اصلی و عمومیِ (Public API) این پکیج محسوب می‌شود و توسعه‌دهندگان باید عمدتاً از آن استفاده کنند.

این ساختار پایه‌ای، اطمینان می‌دهد که پکیج به درستی سازماندهی شده و کلاس اصلی آن به سادگی در دسترس توسعه‌دهندگان قرار گیرد، ضمن اینکه اطلاعات نسخه‌بندی نیز به صورت استاندارد مدیریت می‌شود.

تحلیل کلاس Client در پکیج پایتون

python-sdk-main/ippanel/client.py

کلاس `Client` قلب تپنده پکیج پایتون «آرتا پیامک» است. این کلاس مسئولیت ایجاد اتصال امن به API، ارسال درخواست‌ها و دریافت پاسخ‌ها را بر عهده دارد. تمامی عملیات ارسال پیامک (وب‌سرویس، الگو، و OTP صوتی) از طریق متدهای این کلاس صورت می‌گیرد.

مقداردهی اولیه (Initialization) - متد __init__


import json
import requests
from typing import List, Dict, Any, Optional, Union


class Client:
    """IPPanel API client."""

    DEFAULT_BASE_URL = "https://edge.ippanel.com/v1/api"

    def __init__(self, api_key: str, base_url: Optional[str] = None):
        """
        Initialize the IPPanel client.

        Args:
            api_key: Your IPPanel API key
            base_url: Optional custom base URL for the API
        """
        self.api_key = api_key
        self.base_url = base_url or self.DEFAULT_BASE_URL
        self.session = requests.Session()
        self.session.headers.update({
            "Authorization": self.api_key,
            "Content-Type": "application/json"
        })
    

شرح متد __init__:

  • DEFAULT_BASE_URL: یک ثابت کلاس که آدرس پیش‌فرض و اصلی API سرویس پیامک آرتا پیامک را نگهداری می‌کند.
  • api_key (str): کلید API منحصر به فرد هر کاربر که برای احراز هویت و اجازه دسترسی به API ضروری است. این کلید باید از پنل کاربری آرتا پیامک دریافت شود.
  • base_url (Optional[str]): این پارامتر اختیاری به توسعه‌دهندگان اجازه می‌دهد تا در صورت نیاز (مثلاً برای استفاده از محیط تست یا آدرس‌های جایگزین)، آدرس Base URL سفارشی خود را مشخص کنند. اگر این پارامتر ارائه نشود، از DEFAULT_BASE_URL استفاده خواهد شد.
  • self.session (requests.Session): با استفاده از کتابخانه `requests`، یک نشست (Session) ایجاد می‌شود. استفاده از نشست باعث می‌شود که اتصالات HTTP باز بمانند و هدرها به طور خودکار در درخواست‌های بعدی ارسال شوند، که این امر کارایی را افزایش می‌دهد.
  • self.session.headers.update(...): هدرهای لازم برای درخواست‌های API تنظیم می‌شوند:
    • Authorization: self.api_key: کلید API در هدر Authorization برای احراز هویت ارسال می‌شود.
    • Content-Type: application/json: مشخص می‌کند که داده‌های ارسالی در بدنه درخواست به صورت JSON هستند.

متد ارسال پیامک وب‌سرویس - send_webservice


    def send_webservice(self, message: str, sender: str, recipients: List[str]) -> Dict[str, Any]:
        """
        Send message via webservice.

        Args:
            message: Text message to send
            sender: Sender number
            recipients: List of recipient phone numbers

        Returns:
            API response
        """
        payload = {
            "from_number": sender,
            "message": message,
            "sending_type": "webservice",
            "params": {
                "recipients": recipients
            }
        }
        return self._post("/send", payload)
    

این متد برای ارسال پیامک‌های عمومی از طریق وب‌سرویس طراحی شده است.

- message (str): متن پیامکی که قرار است ارسال شود.
- sender (str): شماره خط پیامکی فرستنده (که باید در پنل کاربری شما ثبت شده باشد).
- recipients (List[str]): لیستی از شماره‌های موبایل گیرندگان پیامک.

Dict[str, Any]: پاسخ دریافتی از API که معمولاً شامل اطلاعاتی درباره وضعیت ارسال است.

نحوه آماده‌سازی داده‌ها: پارامترهای ورودی در قالب یک دیکشنری به نام payload ساخته می‌شوند که شامل شماره فرستنده، متن پیام، نوع ارسال (`webservice`) و لیست گیرندگان است. سپس این payload به متد داخلی _post ارسال می‌شود.

متد ارسال پیامک الگو - send_pattern


    def send_pattern(self, pattern_code: str, sender: str, recipient: str,
                     params: Dict[str, Any]) -> Dict[str, Any]:
        """
        Send a message using a pre-defined pattern.

        Args:
            pattern_code: The pattern code
            sender: Sender number
            recipient: Recipient phone number
            params: Pattern parameters

        Returns:
            API response
        """
        payload = {
            "from_number": sender,
            "recipients": [recipient],
            "code": pattern_code,
            "params": params,
            "sending_type": "pattern"
        }
        return self._post("/send", payload)
    

این متد برای ارسال پیامک‌هایی که از الگوهای از پیش تعریف شده در پنل آرتا پیامک استفاده می‌کنند، به کار می‌رود. این روش برای ارسال پیام‌های تراکنشی مانند کد تایید یا اطلاع‌رسانی‌های سیستمی مناسب است.

- pattern_code (str): کد منحصر به فرد الگوی پیامکی که در پنل کاربری ایجاد شده است.
- sender (str): شماره خط پیامکی فرستنده.
- recipient (str): شماره موبایل گیرنده پیامک (در این حالت، معمولاً یک گیرنده واحد است).
- params (Dict[str, Any]): دیکشنری شامل مقادیری که باید در الگو جایگزین شوند (مانند نام کاربر، کد OTP، تاریخ و غیره).

Dict[str, Any]: پاسخ دریافتی از API.

نحوه آماده‌سازی داده‌ها: مشابه متد قبل، داده‌ها در قالب payload جمع‌آوری می‌شوند، اما با تفاوت‌هایی چون استفاده از pattern_code و params خاص الگو، و تعیین sending_type به صورت "pattern".

متد ارسال کد تایید صوتی - send_votp


    def send_votp(self, code: Union[int, str], recipient: str) -> Dict[str, Any]:
        """
        Send a voice OTP message.

        Args:
            code: OTP code
            recipient: Recipient phone number

        Returns:
            API response
        """
        payload = {
            "message": str(code),
            "sending_type": "votp",
            "params": {
                "recipients": [recipient]
            }
        }
        return self._post("/send", payload)
    

این متد برای ارسال کدهای تایید هویت (OTP) از طریق تماس صوتی استفاده می‌شود. این روش امنیت بالایی برای احراز هویت کاربران فراهم می‌کند.

- code (Union[int, str]): کد تایید که می‌تواند به صورت عدد یا رشته باشد. در نهایت به رشته تبدیل شده و ارسال می‌شود.
- recipient (str): شماره موبایل گیرنده کد تایید صوتی.

Dict[str, Any]: پاسخ دریافتی از API.

نحوه آماده‌سازی داده‌ها: کد OTP به عنوان message و sending_type روی "votp" تنظیم می‌شود. لیست گیرندگان نیز در بخش params قرار می‌گیرد.

متد داخلی ارسال درخواست POST - _post


    def _post(self, path: str, payload: Dict[str, Any]) -> Dict[str, Any]:
        """
        Send a POST request to the API.

        Args:
            path: API endpoint path
            payload: Request payload

        Returns:
            API response data

        Raises:
            requests.HTTPError: If the request fails
        """
        url = f"{self.base_url}{path}"

        response = self.session.post(url, json=payload)
        response.raise_for_status()  # Raise exception for 4XX/5XX responses

        return response.json()
    

این یک متد "خصوصی" (با پیشوند underscore) است که به عنوان یک تابع کمکی برای ارسال درخواست‌های POST به API عمل می‌کند. تمامی متدهای ارسال پیامک در نهایت از این متد استفاده می‌کنند.

- path (str): مسیر (Endpoint) خاص API که درخواست به آن ارسال می‌شود (مثلاً `"/send"`).
- payload (Dict[str, Any]): داده‌های JSON که باید در بدنه درخواست ارسال شوند.

Dict[str, Any]: داده‌های JSON پاسخ دریافتی از سرور API.

requests.HTTPError: در صورتی که سرور API با خطای کلاینت (4xx) یا سرور (5xx) پاسخ دهد، این خطا پرتاب می‌شود و توسعه‌دهنده را از بروز مشکل مطلع می‌سازد.

نحوه عملکرد: آدرس کامل URL ساخته شده، درخواست POST با استفاده از نشست ایجاد شده ارسال می‌شود، و سپس متد raise_for_status() اطمینان حاصل می‌کند که در صورت وجود خطا در پاسخ HTTP، استثنا (Exception) ایجاد شود. در نهایت، پاسخ JSON از بدنه درخواست استخراج و برگردانده می‌شود.

این کلاس Client با ارائه متدهای واضح و تفکیک شده برای هر نوع ارسال پیام، فرآیند ادغام سرویس پیامک آرتا پیامک را برای توسعه‌دهندگان پایتون بسیار ساده و کاربرپسند می‌کند.

تحلیل فایل `main.py` در پکیج پایتون

python-sdk/main.py

فایل `main.py` که در مسیر `python-sdk/` قرار دارد، به نظر می‌رسد یک فایل نمونه یا آزمایشی است که عمدتاً توسط محیط‌های توسعه یکپارچه (IDE) مانند PyCharm برای اجرای سریع کد و اشکال‌زدایی (Debugging) تولید می‌شود. این فایل معمولاً در پروژه‌های واقعی و بسته‌بندی شده (مانند پکیج‌های قابل نصب) نقش اجرایی مستقیمی ندارد، بلکه بیشتر جنبه نمایشی یا تست اولیه دارد.

بررسی بخش‌های مختلف کد:


# This is a sample Python script.

# Press Shift+F10 to execute it or replace it with your code.
# Press Double Shift to search everywhere for classes, files, tool windows, actions, and settings.


def print_hi(name):
    # Use a breakpoint in the code line below to debug your script.
    print(f'Hi, {name}')  # Press Ctrl+F8 to toggle the breakpoint.


# Press the green button in the gutter to run the script.
if __name__ == '__main__':
    print_hi('PyCharm')

# See PyCharm help at https://www.jetbrains.com/help/pycharm/
    

توضیحات خط به خط:

  • # This is a sample Python script.
    یک کامنت ساده که نشان می‌دهد این فایل نمونه است.
  • # Press Shift+F10 to execute it or replace it with your code.
    راهنمایی از طرف IDE برای اجرای اسکریپت با کلید میانبر.
  • # Press Double Shift to search everywhere for classes, files, tool windows, actions, and settings.
    راهنمایی دیگر از IDE برای جستجوی سریع در پروژه.
  • def print_hi(name):

    یک تابع ساده به نام `print_hi` تعریف می‌کند که یک پارامتر ورودی به نام `name` می‌گیرد.

  • # Use a breakpoint in the code line below to debug your script.
    توضیح برای قرار دادن نقطه توقف (breakpoint) جهت اشکال‌زدایی.
  • print(f'Hi, {name}') # Press Ctrl+F8 to toggle the breakpoint.

    این خط، پیام "Hi, " را به همراه مقداری که به عنوان `name` به تابع داده شده، در خروجی چاپ می‌کند. کامنت دوم نیز راهنمایی برای فعال/غیرفعال کردن نقطه توقف است.

  • # Press the green button in the gutter to run the script.
    راهنمایی برای اجرای اسکریپت از طریق دکمه سبز رنگ در کنار شماره خطوط کد در IDE.
  • if __name__ == '__main__':

    این یک ساختار استاندارد در پایتون است. کد داخل این بلوک تنها زمانی اجرا می‌شود که فایل مستقیماً به عنوان اسکریپت اصلی اجرا شود (و نه زمانی که به عنوان یک ماژول در فایل دیگری import شود).

  • print_hi('PyCharm')

    در صورتی که اسکریپت مستقیماً اجرا شود، تابع `print_hi` با پارامتر `'PyCharm'` فراخوانی می‌شود و خروجی `Hi, PyCharm` را نمایش می‌دهد.

  • # See PyCharm help at https://www.jetbrains.com/help/pycharm/
    لینکی برای دسترسی به مستندات PyCharm.

نکته مهم: این فایل `main.py` هیچ ارتباطی با عملکرد اصلی پکیج `ippanel` (مانند ارسال پیامک) ندارد و صرفاً یک فایل اجرایی نمونه است. عملکرد اصلی پکیج توسط کلاس `Client` که در فایل `client.py` تعریف شده و از طریق `__init__.py` در دسترس قرار گرفته، مدیریت می‌شود.

پیکربندی ساخت پکیج (pyproject.toml)

python-sdk/pyproject.toml

فایل pyproject.toml برای مدیریت فرآیند ساخت و توزیع پکیج پایتون استفاده می‌شود. این فایل مشخص می‌کند که برای ساخت پکیج، کدام ابزارها و وابستگی‌ها مورد نیاز هستند.

محتوای کد:


[build-system]
requires = ["setuptools>=42", "wheel"]
build-backend = "setuptools.build_meta"
    

توضیحات:

  • [build-system]: بخشی که تنظیمات مربوط به سیستم ساخت پکیج را تعریف می‌کند.
  • requires: لیستی از پکیج‌هایی که برای ساخت پکیج ضروری هستند. در اینجا setuptools (نسخه ۴۲ یا بالاتر) و wheel ذکر شده‌اند.
  • build-backend: مشخص می‌کند که از کدام ماژول برای اجرای فرآیند ساخت استفاده شود. setuptools.build_meta یک استاندارد رایج است.

پیکربندی و بسته‌بندی SDK پایتون (setup.py)

python-sdk/setup.py

فایل setup.py قلب تپنده پکیج پایتون SDK آرتا پیامک است. این اسکریپت توسط ابزار setuptools اجرا می‌شود تا اطلاعات لازم برای توزیع، نصب و مدیریت پکیج فراهم گردد.

تحلیل کد:


from setuptools import setup, find_packages

# Read the long description from README.md
with open("README.md", "r", encoding="utf-8") as fh:
    long_description = fh.read()

setup(
    name="ippanel-python-sdk",
    version="0.1.0",
    author="IPPanel",
    author_email="support@ippanel.com",
    description="Official Python SDK for IPPanel API",
    long_description=long_description,
    long_description_content_type="text/markdown",
    url="https://github.com/ippanelcom/python-sdk",
    packages=find_packages(),
    classifiers=[
        "Programming Language :: Python :: 3",
        "Programming Language :: Python :: 3.6",
        "Programming Language :: Python :: 3.7",
        "Programming Language :: Python :: 3.8",
        "Programming Language :: Python :: 3.9",
        "License :: OSI Approved :: MIT License",
        "Operating System :: OS Independent",
    ],
    python_requires=">=3.6",
    install_requires=[
        "requests>=2.25.0",
    ],
)
    

توضیحات فنی پارامترها:

  • from setuptools import setup, find_packages:

    وارد کردن توابع اصلی از کتابخانه setuptools که برای تعریف پکیج ضروری هستند.

  • with open("README.md", ...):

    خواندن محتوای فایل README.md تا به عنوان توضیحات کامل (long description) در متادیتاهای پکیج استفاده شود.

  • name="ippanel-python-sdk":

    نام رسمی پکیج که هنگام نصب با pip استفاده می‌شود.

  • version="0.1.0":

    نسخه فعلی پکیج.

  • author="IPPanel" و author_email="support@ippanel.com":

    اطلاعات تماس توسعه‌دهنده یا سازمان.

  • description="Official Python SDK for IPPanel API":

    توضیح مختصر پکیج که در لیست پکیج‌ها نمایش داده می‌شود.

  • long_description=long_description و long_description_content_type="text/markdown":

    استفاده از محتوای کامل فایل README.md برای توضیحات مفصل‌تر، با فرمت Markdown.

  • url="https://github.com/ippanelcom/python-sdk":

    لینک مخزن کد در GitHub.

  • packages=find_packages():

    دستور به setuptools برای پیدا کردن خودکار تمام پکیج‌ها (پوشه‌ها حاوی __init__.py) در ساختار پروژه.

  • classifiers=[...]:

    برچسب‌هایی که برای دسته‌بندی و جستجوی پکیج در PyPI (Python Package Index) استفاده می‌شوند. شامل نسخه پایتون، نوع لایسنس (MIT) و سیستم عامل.

  • python_requires=">=3.6":

    تعیین حداقل نسخه پایتون مورد نیاز برای اجرای این پکیج.

  • install_requires=["requests>=2.25.0"]:

    لیست وابستگی‌های لازم برای اجرای پکیج. در اینجا، پکیج requests با نسخه حداقل 2.25.0 ذکر شده که برای ارسال درخواست‌های HTTP استفاده می‌شود.

این فایل، همراه با pyproject.toml، نمایانگر آمادگی کامل SDK برای انتشار و استفاده توسط توسعه‌دهندگان دیگر است و اطمینان از نصب صحیح و بدون دردسر آن را فراهم می‌کند.

مدیریت فایل‌های الحاقی (MANIFEST.in)

python-sdk/MANIFEST.in

در فرآیند بسته‌بندی پایتون، به طور پیش‌فرض فقط کدهای منبع (فایل‌های .py) در پکیج نهایی قرار می‌گیرند. فایل MANIFEST.in به ابزار ساخت اعلام می‌کند که علاوه بر کدها، چه فایل‌های جانبی دیگری باید در پکیج نهایی گنجانده شوند.

محتوای کد:


include LICENSE
include README.md
recursive-include tests *
    

تحلیل و نقش دستورات:

  • include LICENSE و include README.md:

    این دستورات به صورت صریح فایل‌های لایسنس و راهنما را به پکیج نهایی اضافه می‌کنند تا کاربر پس از نصب پکیج در سیستم خود، به این اطلاعات مهم دسترسی داشته باشد.

  • recursive-include tests *:

    این یک دستور بسیار مفید است که تمامی فایل‌های موجود در دایرکتوری tests و تمام زیرپوشه‌های آن را به صورت بازگشتی در پکیج نهایی قرار می‌دهد. این کار باعث می‌شود اگر کسی پکیج شما را از منبع (Source) نصب کند، بتواند تست‌های استاندارد را نیز اجرا و از سلامت پکیج مطمئن شود.

نتیجه: وجود این فایل در SDK آرتا پیامک باعث می‌شود پکیج شما هنگام توزیع، کامل و طبق استانداردهای حرفه‌ای، شامل مستندات و تست‌های لازم باشد.

Python SDK آرتا پیامک با ساختار ساده و قابل توسعه

قابلیت‌های شاخص sdk ارسال پیامک python

این پکیج پیامک پایتون برای تیم‌هایی طراحی شده که به اتصال Python به پنل پیامک با کدنویسی تمیز، خوانا و سریع نیاز دارند.

ارسال webservice در قالب request ساده

در این کتابخانه ارسال پیامک Python، متد send_webservice برای زمانی مناسب است که بخواهید ارسال پیامک با requests را در قالبی ساده، مستقیم و قابل فهم داخل اسکریپت‌ها یا سرویس‌های داخلی پیاده‌سازی کنید.

پشتیبانی از pattern و VOTP

برای پروژه‌هایی که به ارسال پیامک پترن با پایتون یا احراز هویت سریع نیاز دارند، متدهای send_pattern و send_votp مسیر پیاده‌سازی را کوتاه می‌کنند و این Python SMS library را به گزینه‌ای مناسب برای سناریوهای کاربردی تبدیل می‌کنند.

استفاده از session برای درخواست‌های پایدار

تکیه بر Session در ساختار داخلی SDK باعث می‌شود اتصال API پیامک به اسکریپت Python منظم‌تر و پایدارتر باشد؛ مزیتی مهم برای پروژه‌هایی که به ارسال‌های تکرارشونده، تست ساده‌تر و نگهداری بهتر نیاز دارند.

مدیریت خطا در پکیج پیامک پایتون

نحوه برخورد این sdk ارسال پیامک python با خطاهای شبکه

پایداری در اتصال Python به پنل پیامک نیازمند هندلینگ دقیق خطاهاست.

تکیه بر exceptionهای requests

این کتابخانه ارسال پیامک Python با بهره‌گیری از قدرت requests، خطاهای شبکه را مدیریت کرده و به شما اجازه می‌دهد ارسال پیامک با requests را با استانداردهای استاندارد پایتون پیاده‌سازی کنید.

برگرداندن JSON در پاسخ موفق

پس از موفقیت در اتصال Python به پنل پیامک، داده‌ها به صورت دیکشنری خام (JSON) در دسترس هستند. این روش در Python SMS library به شما کمک می‌کند منطق پردازش پاسخ‌ها را در پروژه‌های پیچیده ساده نگه دارید.

شروع سریع با پکیج پیامک پایتون

مراحل اجرا در پروژه‌های sdk ارسال پیامک python

نصب با pip

برای اتصال Python به پنل پیامک، ابتدا پکیج اصلی را نصب کنید. این Python SMS library بهترین انتخاب برای پروژه‌هایی است که به ارسال پیامک با requests و پایداری بالا نیاز دارند.

تعریف api_key و base_url

با مقداردهی اولیه کلاینت، یک کتابخانه ارسال پیامک Python امن خواهید داشت. این روش برای ارسال پیامک پترن با پایتون یا نمونه کد VOTP در Python بسیار بهینه عمل می‌کند.

پرسش‌های متداول توسعه‌دهندگان

سوالات کلیدی درباره sdk ارسال پیامک python

پاسخ به چالش‌های رایج در استفاده از پکیج پیامک پایتون آرتا

۱. آیا این SDK با Python 3.6 به بالا کار می‌کند؟

بله، این Python SMS library برای سازگاری حداکثری با نسخه‌های مدرن پایتون طراحی شده تا اتصال Python به پنل پیامک در تمامی محیط‌های سروری پایدار باقی بماند.

۲. آیا نصب آن فقط با pip انجام می‌شود؟

استفاده از pip استانداردترین روش برای نصب این کتابخانه ارسال پیامک Python است، که مدیریت وابستگی‌ها را برای پروژه‌های شما تسهیل می‌کند.

۳. آیا می‌توان base_url را تغییر داد؟

بله، شما می‌توانید برای تست در محیط‌های توسعه، base_url را در تنظیمات کلاینت تغییر دهید که این ویژگی بهترین SDK پیامک برای پروژه‌های Python محسوب می‌شود.

۴. آیا برای اسکریپت‌های سبک مناسب است؟

به‌دلیل استفاده از متدهای بهینه و ارسال پیامک با requests، این پکیج بسیار سبک بوده و برای اسکریپت‌های اتوماسیون یا نمونه کد VOTP در Python ایده‌آل است.

۵. آیا VOTP در آن موجود است؟

بله، امکان ارسال پیامک پترن با پایتون و مدیریت کدهای تایید (VOTP) به‌صورت کامل در این کتابخانه requests-based برای پیامک پیش‌بینی شده است.

۶. آیا پاسخ‌ها به‌صورت دیکشنری JSON بازمی‌گردند؟

دقیقاً؛ تمامی خروجی‌ها در این پکیج پیامک پایتون به‌صورت ساختاریافته JSON ارائه می‌شوند تا پردازش پاسخ‌های API پیامک در سمت سرور شما ساده‌تر شود.