Client API Python officiel pour Stream Chat, un service permettant de créer des applications de chat.
Explorer les documents »
Exemples de code · Signaler un bug · Fonctionnalité de demande
Mise à jour majeure en v4.0 <
Les objets de réponse renvoyés sont des instances de la classe
StreamResponse
. Il hérite dedict
, il est donc entièrement rétrocompatible. De plus, il offre d'autres avantages tels que des informations sur la limite de débit (resp.rate_limit()
), des en-têtes de réponse (resp.headers()
) ou un code d'état (resp.status_code()
).
Vous pouvez créer un compte Stream sur notre page de démarrage.
Vous pouvez utiliser cette bibliothèque pour accéder aux points de terminaison de l'API de chat côté serveur.
Pour les intégrations côté client (web et mobile), consultez les bibliothèques SDK JavaScript, iOS et Android (docs).
$ pip install stream-chat
La bibliothèque est presque 100% typée. N'hésitez pas à activer mypy pour notre bibliothèque. Nous apporterons d’autres améliorations à l’avenir dans ce domaine.
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 ()
Nous apprécions les modifications de code qui améliorent cette bibliothèque ou résolvent un problème, veuillez vous assurer de suivre toutes les meilleures pratiques et d'ajouter des tests le cas échéant avant de soumettre une Pull Request sur Github. Nous sommes très heureux de fusionner votre code dans le référentiel officiel. Assurez-vous de signer d'abord notre contrat de licence de contributeur (CLA). Consultez notre fichier de licence pour plus de détails.
Rendez-vous sur CONTRIBUTING.md pour quelques conseils de développement.
Nous avons récemment clôturé un cycle de financement de série B de 38 millions de dollars et nous poursuivons notre croissance active. Nos API sont utilisées par plus d'un milliard d'utilisateurs finaux, et vous aurez la chance d'avoir un impact énorme sur le produit au sein d'une équipe composée des ingénieurs les plus compétents du monde entier.
Consultez nos ouvertures actuelles et postulez via le site Web de Stream.