عميل Python API الرسمي لـ Stream Chat، وهي خدمة لبناء تطبيقات الدردشة.
استكشاف المستندات »
نماذج التعليمات البرمجية · الإبلاغ عن الأخطاء · ميزة الطلب
التحديث الرئيسي في v4.0 <
كائنات الاستجابة التي تم إرجاعها هي مثيلات لفئة
StreamResponse
. إنه يرث منdict
، لذا فهو متوافق تمامًا مع الإصدارات السابقة. بالإضافة إلى ذلك، فإنه يوفر فوائد أخرى مثل معلومات حد المعدل (resp.rate_limit()
) أو رؤوس الاستجابة (resp.headers()
) أو رمز الحالة (resp.status_code()
).
يمكنك التسجيل للحصول على حساب Stream من خلال صفحة البدء.
يمكنك استخدام هذه المكتبة للوصول إلى نقاط نهاية واجهة برمجة تطبيقات الدردشة من جانب الخادم.
بالنسبة لعمليات التكامل من جانب العميل (الويب والجوال)، قم بإلقاء نظرة على مكتبات JavaScript وiOS وAndroid SDK (docs).
$ pip install stream-chat
المكتبة مكتوبة بنسبة 100٪ تقريبًا. لا تتردد في تمكين mypy لمكتبتنا. وسوف نقدم المزيد من التحسينات في المستقبل في هذا المجال.
from stream_chat import StreamChat
chat = StreamChat ( api_key = "STREAM_KEY" , api_secret = "STREAM_SECRET" )
# add a user
chat . upsert_user ({ "id" : "chuck" , "name" : "Chuck" })
# create a channel about kung-fu
channel = chat . channel ( "messaging" , "kung-fu" )
channel . create ( "chuck" )
# add a first message to the channel
channel . send_message ({ "text" : "AMA about kung-fu" }, "chuck" )
# we also expose some response metadata through a custom dictionary
resp = chat . deactivate_user ( "bruce_lee" )
print ( type ( resp )) # <class 'stream_chat.types.stream_response.StreamResponse'>
print ( resp [ "user" ][ "id" ]) # bruce_lee
rate_limit = resp . rate_limit ()
print ( f" { rate_limit . limit } / { rate_limit . remaining } / { rate_limit . reset } " ) # 60 / 59 /2022-01-06 12:35:00+00:00
headers = resp . headers ()
print ( headers ) # { 'Content-Encoding': 'gzip', 'Content-Length': '33', ... }
status_code = resp . status_code ()
print ( status_code ) # 200
import asyncio
from stream_chat import StreamChatAsync
async def main ():
async with StreamChatAsync ( api_key = "STREAM_KEY" , api_secret = "STREAM_SECRET" ) as chat :
# add a user
await chat . upsert_user ({ "id" : "chuck" , "name" : "Chuck" })
# create a channel about kung-fu
channel = chat . channel ( "messaging" , "kung-fu" )
await channel . create ( "chuck" )
# add a first message to the channel
await channel . send_message ({ "text" : "AMA about kung-fu" }, "chuck" )
# we also expose some response metadata through a custom dictionary
resp = await chat . deactivate_user ( "bruce_lee" )
print ( type ( resp )) # <class 'stream_chat.types.stream_response.StreamResponse'>
print ( resp [ "user" ][ "id" ]) # bruce_lee
rate_limit = resp . rate_limit ()
print ( f" { rate_limit . limit } / { rate_limit . remaining } / { rate_limit . reset } " ) # 60 / 59 / 2022-01-06 12:35:00+00:00
headers = resp . headers ()
print ( headers ) # { 'Content-Encoding': 'gzip', 'Content-Length': '33', ... }
status_code = resp . status_code ()
print ( status_code ) # 200
if __name__ == '__main__' :
loop = asyncio . get_event_loop ()
try :
loop . run_until_complete ( main ())
finally :
loop . run_until_complete ( loop . shutdown_asyncgens ())
loop . close ()
نحن نرحب بتغييرات التعليمات البرمجية التي تعمل على تحسين هذه المكتبة أو حل مشكلة ما، يرجى التأكد من اتباع أفضل الممارسات وإضافة الاختبارات إن أمكن قبل إرسال طلب السحب على Github. يسعدنا جدًا دمج الكود الخاص بك في المستودع الرسمي. تأكد من توقيع اتفاقية ترخيص المساهم (CLA) أولاً. راجع ملف الترخيص الخاص بنا لمزيد من التفاصيل.
توجه إلى CONTRIBUTING.md للحصول على بعض النصائح التطويرية.
لقد أنهينا مؤخرًا جولة تمويل من السلسلة B بقيمة 38 مليون دولار ونواصل النمو بنشاط. يتم استخدام واجهات برمجة التطبيقات الخاصة بنا من قبل أكثر من مليار مستخدم نهائي، وستكون لديك فرصة لإحداث تأثير كبير على المنتج ضمن فريق من أقوى المهندسين في جميع أنحاء العالم.
تحقق من الفتحات الحالية لدينا وتقدم بطلب عبر موقع Stream الإلكتروني.