Klien Python API resmi untuk Stream Chat, layanan untuk membangun aplikasi obrolan.
Jelajahi dokumen »
Contoh Kode · Laporkan Bug · Fitur Permintaan
Pembaruan besar di v4.0 <
Objek respons yang dikembalikan adalah turunan dari kelas
StreamResponse
. Ini mewarisi daridict
, jadi sepenuhnya kompatibel ke belakang. Selain itu, ini memberikan manfaat lain seperti informasi batas laju (resp.rate_limit()
), header respons (resp.headers()
) atau kode status (resp.status_code()
).
Anda dapat mendaftar akun Stream di halaman Memulai kami.
Anda dapat menggunakan perpustakaan ini untuk mengakses titik akhir API obrolan di sisi server.
Untuk integrasi sisi klien (web dan seluler) lihat pustaka JavaScript, iOS, dan Android SDK (dokumen).
$ pip install stream-chat
Perpustakaan hampir 100% diketik. Jangan ragu untuk mengaktifkan mypy untuk perpustakaan kami. Kami akan memperkenalkan lebih banyak perbaikan di masa depan di bidang ini.
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 ()
Kami menyambut perubahan kode yang meningkatkan pustaka ini atau memperbaiki masalah, pastikan untuk mengikuti semua praktik terbaik dan menambahkan pengujian jika berlaku sebelum mengirimkan Permintaan Tarik di Github. Kami sangat senang untuk menggabungkan kode Anda di repositori resmi. Pastikan untuk menandatangani Perjanjian Lisensi Kontributor (CLA) kami terlebih dahulu. Lihat file lisensi kami untuk lebih jelasnya.
Kunjungi CONTRIBUTING.md untuk beberapa tips pengembangan.
Kami baru saja menyelesaikan putaran pendanaan Seri B senilai $38 juta dan kami terus berkembang secara aktif. API kami digunakan oleh lebih dari satu miliar pengguna akhir, dan Anda akan memiliki kesempatan untuk membuat dampak besar pada produk dalam tim yang terdiri dari insinyur terkuat di seluruh dunia.
Lihat lowongan kami saat ini dan lamar melalui situs web Stream.