يمكن العثور على وثائق API Twilio هنا.
يمكن العثور على وثائق مكتبة Python هنا.
يستخدم twilio-python
نسخة معدلة من الإصدار الدلالي لجميع التغييرات. انظر هذا المستند للحصول على التفاصيل.
تدعم هذه المكتبة تطبيقات Python التالية:
تثبيت من PYPI باستخدام PIP ، مدير الحزمة لبيثون.
pip3 install twilio
إذا فشل تثبيت PIP على Windows ، فتحقق من طول مسار الدليل. إذا كان 260 حرفًا أكبر ، فقم بتمكين مسارات طويلة أو اختيار موقع أقصر آخر.
ليس لديك PIP مثبت؟ حاول تثبيته ، عن طريق تشغيل هذا من سطر الأوامر:
curl https://bootstrap.pypa.io/get-pip.py | python
أو يمكنك تنزيل الكود المصدري (ZIP) لـ twilio-python
، ثم تشغيل:
python3 setup.py install
معلومات إذا كان سطر الأوامر يمنحك رسالة خطأ تقول الإذن تم رفضه ، فحاول تشغيل الأوامر المذكورة أعلاه مع
sudo
(على سبيل المثال ،sudo pip3 install twilio
).
حاول أن ترسل لنفسك رسالة SMS. احفظ نموذج الكود التالي على جهاز الكمبيوتر الخاص بك مع محرر نصوص. تأكد من تحديث حساب account_sid
و auth_token
و from_
مع قيم من حساب twilio الخاص بك. سيكون رقم to
هو هاتفك المحمول.
from twilio . rest import Client
# Your Account SID and Auth Token from console.twilio.com
account_sid = "ACXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
auth_token = "your_auth_token"
client = Client ( account_sid , auth_token )
message = client . messages . create (
to = "+15558675309" ,
from_ = "+15017250604" ,
body = "Hello from Python!" )
print ( message . sid )
احفظ الملف باسم send_sms.py
. في المحطة ، cd
إلى الدليل الذي يحتوي على الملف الذي قمت بحفظه للتو ثم تشغيل:
python3 send_sms.py
بعد تأخير قصير ، ستتلقى الرسالة النصية على هاتفك.
تحذير أنه من المقبول أن ترسم بيانات الاعتماد الخاصة بك عند الاختبار محليًا ، ولكن يجب عليك استخدام متغيرات البيئة للحفاظ على سريةها قبل ارتكاب أي رمز أو نشر في الإنتاج. تحقق من كيفية تعيين متغيرات البيئة لمزيد من المعلومات.
يحتاج عميل Twilio
إلى بيانات اعتماد Twilio. يمكنك إما تمريرها مباشرة إلى المُنشئ (انظر الكود أدناه) أو عبر متغيرات البيئة.
المصادقة مع حساب SID و AUTH TOKEN:
from twilio . rest import Client
account_sid = "ACXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
auth_token = "your_auth_token"
client = Client ( account_sid , auth_token )
المصادقة مع مفتاح API و Secret API:
from twilio . rest import Client
api_key = "XXXXXXXXXXXXXXXXX"
api_secret = "YYYYYYYYYYYYYYYYYY"
account_sid = "ACXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
client = Client ( api_key , api_secret , account_sid )
بدلاً من ذلك ، سيبحث مُنشئ Client
بدون هذه المعلمات عن متغيرات TWILIO_ACCOUNT_SID
و TWILIO_AUTH_TOKEN
داخل البيئة الحالية.
نقترح تخزين بيانات الاعتماد الخاصة بك كمتغيرات بيئة. لماذا؟ لن تقلق أبدًا بشأن ارتكاب بيانات الاعتماد الخاصة بك ونشرها عن طريق الخطأ في مكان علني.
from twilio . rest import Client
client = Client ()
للاستفادة من البنية التحتية العالمية لـ Twilio ، حدد المنطقة و/أو الحافة المستهدفة للعميل:
from twilio . rest import Client
client = Client ( region = 'au1' , edge = 'sydney' )
سيبحث مُنشئ Client
بدون هذه المعلمات أيضًا عن متغيرات TWILIO_REGION
و TWILIO_EDGE
داخل البيئة الحالية.
بدلاً من ذلك ، يمكنك تحديد الحافة و/أو المنطقة بعد إنشاء عميل Twilio:
from twilio . rest import Client
client = Client ()
client . region = 'au1'
client . edge = 'sydney'
سيؤدي ذلك إلى تحويل hostname
من api.twilio.com
إلى api.sydney.au1.twilio.com
.
from twilio . rest import Client
account_sid = "ACXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
auth_token = "your_auth_token"
client = Client ( account_sid , auth_token )
call = client . calls . create ( to = "9991231234" ,
from_ = "9991231234" ,
url = "http://twimlets.com/holdmusic?Bucket=com.twilio.music.ambient" )
print ( call . sid )
from twilio . rest import Client
account_sid = "ACXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
auth_token = "your_auth_token"
client = Client ( account_sid , auth_token )
call = client . calls . get ( "CA42ed11f93dc08b952027ffbc406d0868" )
print ( call . to )
تتناول المكتبة تلقائيًا الترحيل من أجلك. تحتوي المجموعات ، مثل calls
messages
، على list
stream
تلك الصفحة أسفل الغطاء. مع كل من list
stream
، يمكنك تحديد عدد السجلات التي تريد استلامها ( limit
) والحد الأقصى للحجم الذي تريد أن يكون كل صفحة ( page_size
). ستتعامل المكتبة مع المهمة لك.
list
بفارغ الصبر تجلب جميع السجلات وإرجاعها كقائمة ، في حين أن stream
يرجع إلى مرجعي ويستعيد بتكاسل صفحات السجلات أثناء تكرار المجموعة. يمكنك أيضًا صفحة باستخدام طريقة page
يدويًا.
list
from twilio . rest import Client
account_sid = "ACXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
auth_token = "your_auth_token"
client = Client ( account_sid , auth_token )
for sms in client . messages . list ():
print ( sms . to )
افتراضيًا ، سيقوم عميل Twilio بتقديم طلبات متزامنة إلى API Twilio. للسماح بطلبات غير متزامنة وغير حظر ، قمنا بتضمين عميل HTTP غير متزامن اختياري. عند استخدامه مع العميل وطرق *_async
المصاحبة ، سيتم تنفيذ الطلبات المقدمة إلى واجهة برمجة تطبيقات Twilio بشكل غير متزامن.
from twilio . http . async_http_client import AsyncTwilioHttpClient
from twilio . rest import Client
async def main ():
account_sid = "ACXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
auth_token = "your_auth_token"
http_client = AsyncTwilioHttpClient ()
client = Client ( account_sid , auth_token , http_client = http_client )
message = await client . messages . create_async ( to = "+12316851234" , from_ = "+15555555555" ,
body = "Hello there!" )
asyncio . run ( main ())
قم بتسجيل طلب طلب API وبيانات الاستجابة إلى وحدة التحكم:
import logging
client = Client ( account_sid , auth_token )
logging . basicConfig ()
client . http_client . logger . setLevel ( logging . INFO )
قم بتسجيل طلب API وبيانات الاستجابة إلى ملف:
import logging
client = Client ( account_sid , auth_token )
logging . basicConfig ( filename = './log.txt' )
client . http_client . logger . setLevel ( logging . INFO )
الإصدار 8.x من twilio-python
يصدر فئة استثناء لمساعدتك في التعامل مع الاستثناءات الخاصة بطرق Twilio. لاستخدامه ، استيراد TwilioRestException
واستثناء الاستثناءات على النحو التالي:
from twilio . rest import Client
from twilio . base . exceptions import TwilioRestException
account_sid = "ACXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
auth_token = "your_auth_token"
client = Client ( account_sid , auth_token )
try :
message = client . messages . create ( to = "+12316851234" , from_ = "+15555555555" ,
body = "Hello there!" )
except TwilioRestException as e :
print ( e )
للتحكم في المكالمات الهاتفية ، يحتاج التطبيق إلى إخراج TWIML.
استخدم twilio.twiml.Response
لإنشاء مثل هذه الردود بسهولة.
from twilio . twiml . voice_response import VoiceResponse
r = VoiceResponse ()
r . say ( "Welcome to twilio!" )
print ( str ( r ))
<? xml version = " 1.0 " encoding = " utf-8 " ?>
< Response >< Say >Welcome to twilio!</ Say ></ Response >
يتم استخدام Dockerfile
الموجود في هذا المستودع وصورة twilio/twilio-python
Docker الخاصة بكل منها حاليًا لأغراض الاختبار فقط.
إذا كنت بحاجة إلى مساعدة في تثبيت المكتبة أو استخدامها ، فيرجى التحقق من مركز مساعدة دعم Twilio أولاً ، وتقديم تذكرة دعم إذا لم تجد إجابة على سؤالك.
إذا كنت قد عثرت بدلاً من ذلك على خطأ في المكتبة أو ترغب في إضافة ميزات جديدة ، فاستمر في فتح مشكلات أو سحب طلبات مقابل هذا الريبو!