Offizieller Python-API-Client für Stream Chat, einen Dienst zum Erstellen von Chat-Anwendungen.
Entdecken Sie die Dokumente »
Codebeispiele · Fehler melden · Funktion anfordern
Großes Update in v4.0 <
Die zurückgegebenen Antwortobjekte sind Instanzen der
StreamResponse
Klasse. Es erbt vondict
und ist daher vollständig abwärtskompatibel. Darüber hinaus bietet es weitere Vorteile wie Ratenlimitinformationen (resp.rate_limit()
), Antwortheader (resp.headers()
) oder Statuscode (resp.status_code()
).
Sie können sich auf unserer Seite „Erste Schritte“ für ein Stream-Konto anmelden.
Sie können diese Bibliothek verwenden, um serverseitig auf Chat-API-Endpunkte zuzugreifen.
Für die clientseitigen Integrationen (Web und Mobilgeräte) werfen Sie einen Blick auf die JavaScript-, iOS- und Android-SDK-Bibliotheken (Dokumente).
$ pip install stream-chat
Die Bibliothek ist fast zu 100 % getippt. Fühlen Sie sich frei, mypy für unsere Bibliothek zu aktivieren. Wir werden in diesem Bereich in Zukunft weitere Verbesserungen einführen.
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 ()
Wir freuen uns über Codeänderungen, die diese Bibliothek verbessern oder ein Problem beheben. Bitte stellen Sie sicher, dass Sie alle Best Practices befolgen und gegebenenfalls Tests hinzufügen, bevor Sie eine Pull-Anfrage auf Github einreichen. Wir freuen uns sehr, Ihren Code im offiziellen Repository zusammenzuführen. Stellen Sie sicher, dass Sie zuerst unsere Contributor License Agreement (CLA) unterzeichnen. Weitere Einzelheiten finden Sie in unserer Lizenzdatei.
Besuchen Sie CONTRIBUTING.md für einige Entwicklungstipps.
Wir haben kürzlich eine Finanzierungsrunde der Serie B über 38 Millionen US-Dollar abgeschlossen und wachsen weiterhin aktiv. Unsere APIs werden von mehr als einer Milliarde Endbenutzern verwendet, und Sie haben die Chance, innerhalb eines Teams der stärksten Ingenieure auf der ganzen Welt einen großen Einfluss auf das Produkt zu nehmen.
Schauen Sie sich unsere aktuellen Stellenangebote an und bewerben Sie sich über die Website von Stream.