# 4jawaly SMS Gateway SDK for Python
مكتبة Python لإرسال الرسائل النصية القصيرة عبر بوابة 4jawaly للرسائل
## المتطلبات
- Python 3.7 أو أحدث
- requests >= 2.25.0
- pydantic >= 1.8.0
## التثبيت
```bash
pip install fourjawaly-sms
```
## الاستخدام
### تهيئة المكتبة
```python
from fourjawaly_sms import SMSGateway
client = SMSGateway(
api_key='your_api_key',
api_secret='your_api_secret',
sender='YOUR_SENDER_NAME'
)
```
### إرسال رسالة SMS
```python
try:
# إرسال لرقم واحد
response = client.send_single_sms(
number='966500000000',
message='مرحباً من 4jawaly!'
)
if response.success:
print('تم إرسال الرسالة بنجاح!')
print(f'معرفات المهام: {", ".join(response.job_ids)}')
# إرسال لعدة أرقام
numbers = ['966500000000', '966500000001']
bulk_response = client.send_sms(
numbers=numbers,
message='رسالة جماعية من 4jawaly!'
)
print(f'تم إرسال: {bulk_response.total_success}')
print(f'فشل إرسال: {bulk_response.total_failed}')
except SMSGatewayError as e:
print(f'حدث خطأ: {e}')
```
### الاستعلام عن الرصيد
```python
try:
balance = client.get_balance(is_active=1)
print(f'الرصيد: {balance.balance}')
if balance.packages:
for package in balance.packages:
print(f'الباقة {package.id}:')
print(f' النقاط: {package.package_points}')
print(f' النقاط المتبقية: {package.current_points}')
print(f' تاريخ الانتهاء: {package.expire_at}')
except SMSGatewayError as e:
print(f'حدث خطأ: {e}')
```
### استخدام Context Manager
```python
with SMSGateway('your_api_key', 'your_api_secret', 'YOUR_SENDER_NAME') as client:
response = client.send_single_sms('966500000000', 'مرحباً من 4jawaly!')
# سيتم إغلاق الجلسة تلقائياً عند الخروج من الـ with block
```
## التطوير
```bash
# تثبيت المتطلبات
pip install -e ".[dev]"
# تشغيل الاختبارات
pytest
# تشغيل التحقق من التنسيق
black .
flake8 .
# بناء الحزمة
python setup.py sdist bdist_wheel
```
## المساهمة
1. Fork المشروع
2. إنشاء فرع للميزة (`git checkout -b feature/amazing-feature`)
3. Commit التغييرات (`git commit -m 'Add some amazing feature'`)
4. Push إلى الفرع (`git push origin feature/amazing-feature`)
5. فتح Pull Request
## الترخيص
MIT License
Raw data
{
"_id": null,
"home_page": "https://github.com/4jawaly/sms-gateway-python",
"name": "sms4jawaly-sms",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.7",
"maintainer_email": null,
"keywords": "sms, messaging, 4jawaly, gateway",
"author": "4jawaly",
"author_email": "support@4jawaly.com",
"download_url": "https://files.pythonhosted.org/packages/79/cd/e823ca126053605d3848920ce110f81fc7dfde5d4f12bc472f2a64e0ce96/sms4jawaly-sms-1.0.0.tar.gz",
"platform": null,
"description": "# 4jawaly SMS Gateway SDK for Python\n\n\u0645\u0643\u062a\u0628\u0629 Python \u0644\u0625\u0631\u0633\u0627\u0644 \u0627\u0644\u0631\u0633\u0627\u0626\u0644 \u0627\u0644\u0646\u0635\u064a\u0629 \u0627\u0644\u0642\u0635\u064a\u0631\u0629 \u0639\u0628\u0631 \u0628\u0648\u0627\u0628\u0629 4jawaly \u0644\u0644\u0631\u0633\u0627\u0626\u0644\n\n## \u0627\u0644\u0645\u062a\u0637\u0644\u0628\u0627\u062a\n\n- Python 3.7 \u0623\u0648 \u0623\u062d\u062f\u062b\n- requests >= 2.25.0\n- pydantic >= 1.8.0\n\n## \u0627\u0644\u062a\u062b\u0628\u064a\u062a\n\n```bash\npip install fourjawaly-sms\n```\n\n## \u0627\u0644\u0627\u0633\u062a\u062e\u062f\u0627\u0645\n\n### \u062a\u0647\u064a\u0626\u0629 \u0627\u0644\u0645\u0643\u062a\u0628\u0629\n\n```python\nfrom fourjawaly_sms import SMSGateway\n\nclient = SMSGateway(\n api_key='your_api_key',\n api_secret='your_api_secret',\n sender='YOUR_SENDER_NAME'\n)\n```\n\n### \u0625\u0631\u0633\u0627\u0644 \u0631\u0633\u0627\u0644\u0629 SMS\n\n```python\ntry:\n # \u0625\u0631\u0633\u0627\u0644 \u0644\u0631\u0642\u0645 \u0648\u0627\u062d\u062f\n response = client.send_single_sms(\n number='966500000000',\n message='\u0645\u0631\u062d\u0628\u0627\u064b \u0645\u0646 4jawaly!'\n )\n \n if response.success:\n print('\u062a\u0645 \u0625\u0631\u0633\u0627\u0644 \u0627\u0644\u0631\u0633\u0627\u0644\u0629 \u0628\u0646\u062c\u0627\u062d!')\n print(f'\u0645\u0639\u0631\u0641\u0627\u062a \u0627\u0644\u0645\u0647\u0627\u0645: {\", \".join(response.job_ids)}')\n \n # \u0625\u0631\u0633\u0627\u0644 \u0644\u0639\u062f\u0629 \u0623\u0631\u0642\u0627\u0645\n numbers = ['966500000000', '966500000001']\n bulk_response = client.send_sms(\n numbers=numbers,\n message='\u0631\u0633\u0627\u0644\u0629 \u062c\u0645\u0627\u0639\u064a\u0629 \u0645\u0646 4jawaly!'\n )\n \n print(f'\u062a\u0645 \u0625\u0631\u0633\u0627\u0644: {bulk_response.total_success}')\n print(f'\u0641\u0634\u0644 \u0625\u0631\u0633\u0627\u0644: {bulk_response.total_failed}')\n\nexcept SMSGatewayError as e:\n print(f'\u062d\u062f\u062b \u062e\u0637\u0623: {e}')\n```\n\n### \u0627\u0644\u0627\u0633\u062a\u0639\u0644\u0627\u0645 \u0639\u0646 \u0627\u0644\u0631\u0635\u064a\u062f\n\n```python\ntry:\n balance = client.get_balance(is_active=1)\n print(f'\u0627\u0644\u0631\u0635\u064a\u062f: {balance.balance}')\n \n if balance.packages:\n for package in balance.packages:\n print(f'\u0627\u0644\u0628\u0627\u0642\u0629 {package.id}:')\n print(f' \u0627\u0644\u0646\u0642\u0627\u0637: {package.package_points}')\n print(f' \u0627\u0644\u0646\u0642\u0627\u0637 \u0627\u0644\u0645\u062a\u0628\u0642\u064a\u0629: {package.current_points}')\n print(f' \u062a\u0627\u0631\u064a\u062e \u0627\u0644\u0627\u0646\u062a\u0647\u0627\u0621: {package.expire_at}')\n\nexcept SMSGatewayError as e:\n print(f'\u062d\u062f\u062b \u062e\u0637\u0623: {e}')\n```\n\n### \u0627\u0633\u062a\u062e\u062f\u0627\u0645 Context Manager\n\n```python\nwith SMSGateway('your_api_key', 'your_api_secret', 'YOUR_SENDER_NAME') as client:\n response = client.send_single_sms('966500000000', '\u0645\u0631\u062d\u0628\u0627\u064b \u0645\u0646 4jawaly!')\n # \u0633\u064a\u062a\u0645 \u0625\u063a\u0644\u0627\u0642 \u0627\u0644\u062c\u0644\u0633\u0629 \u062a\u0644\u0642\u0627\u0626\u064a\u0627\u064b \u0639\u0646\u062f \u0627\u0644\u062e\u0631\u0648\u062c \u0645\u0646 \u0627\u0644\u0640 with block\n```\n\n## \u0627\u0644\u062a\u0637\u0648\u064a\u0631\n\n```bash\n# \u062a\u062b\u0628\u064a\u062a \u0627\u0644\u0645\u062a\u0637\u0644\u0628\u0627\u062a\npip install -e \".[dev]\"\n\n# \u062a\u0634\u063a\u064a\u0644 \u0627\u0644\u0627\u062e\u062a\u0628\u0627\u0631\u0627\u062a\npytest\n\n# \u062a\u0634\u063a\u064a\u0644 \u0627\u0644\u062a\u062d\u0642\u0642 \u0645\u0646 \u0627\u0644\u062a\u0646\u0633\u064a\u0642\nblack .\nflake8 .\n\n# \u0628\u0646\u0627\u0621 \u0627\u0644\u062d\u0632\u0645\u0629\npython setup.py sdist bdist_wheel\n```\n\n## \u0627\u0644\u0645\u0633\u0627\u0647\u0645\u0629\n\n1. Fork \u0627\u0644\u0645\u0634\u0631\u0648\u0639\n2. \u0625\u0646\u0634\u0627\u0621 \u0641\u0631\u0639 \u0644\u0644\u0645\u064a\u0632\u0629 (`git checkout -b feature/amazing-feature`)\n3. Commit \u0627\u0644\u062a\u063a\u064a\u064a\u0631\u0627\u062a (`git commit -m 'Add some amazing feature'`)\n4. Push \u0625\u0644\u0649 \u0627\u0644\u0641\u0631\u0639 (`git push origin feature/amazing-feature`)\n5. \u0641\u062a\u062d Pull Request\n\n## \u0627\u0644\u062a\u0631\u062e\u064a\u0635\n\nMIT License\n",
"bugtrack_url": null,
"license": null,
"summary": "Python SDK for 4jawaly SMS Gateway",
"version": "1.0.0",
"project_urls": {
"Bug Reports": "https://github.com/4jawaly/sms-gateway-python/issues",
"Homepage": "https://github.com/4jawaly/sms-gateway-python",
"Source": "https://github.com/4jawaly/sms-gateway-python"
},
"split_keywords": [
"sms",
" messaging",
" 4jawaly",
" gateway"
],
"urls": [
{
"comment_text": null,
"digests": {
"blake2b_256": "fd1343f752c531d90e1c5bbac8a43430aad4c108e853adc48b2f230488d5b37f",
"md5": "f650502625d6a55cbc44a6464c647fdd",
"sha256": "3e9e467d8830a0651057d80b792bce04f91f0d2c4eb10a3df10be3e0300d1305"
},
"downloads": -1,
"filename": "sms4jawaly_sms-1.0.0-py3-none-any.whl",
"has_sig": false,
"md5_digest": "f650502625d6a55cbc44a6464c647fdd",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.7",
"size": 6558,
"upload_time": "2025-02-06T14:05:56",
"upload_time_iso_8601": "2025-02-06T14:05:56.232164Z",
"url": "https://files.pythonhosted.org/packages/fd/13/43f752c531d90e1c5bbac8a43430aad4c108e853adc48b2f230488d5b37f/sms4jawaly_sms-1.0.0-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "79cde823ca126053605d3848920ce110f81fc7dfde5d4f12bc472f2a64e0ce96",
"md5": "dc620dba0d65988001db243bfdec018c",
"sha256": "22b06f7b43c0aa261af66c3515c46ef896a65aa3fe3ba7b94e6009b234f55372"
},
"downloads": -1,
"filename": "sms4jawaly-sms-1.0.0.tar.gz",
"has_sig": false,
"md5_digest": "dc620dba0d65988001db243bfdec018c",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.7",
"size": 5959,
"upload_time": "2025-02-06T14:05:58",
"upload_time_iso_8601": "2025-02-06T14:05:58.538293Z",
"url": "https://files.pythonhosted.org/packages/79/cd/e823ca126053605d3848920ce110f81fc7dfde5d4f12bc472f2a64e0ce96/sms4jawaly-sms-1.0.0.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-02-06 14:05:58",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "4jawaly",
"github_project": "sms-gateway-python",
"github_not_found": true,
"lcname": "sms4jawaly-sms"
}