Cliente API oficial de Python para Stream Chat, un servicio para crear aplicaciones de chat.
Explora los documentos »
Ejemplos de código · Informar error · Solicitar función
Actualización importante en v4.0 <
Los objetos de respuesta devueltos son instancias de la clase
StreamResponse
. Hereda dedict
, por lo que es totalmente compatible con versiones anteriores. Además, proporciona otros beneficios como información de límite de velocidad (resp.rate_limit()
), encabezados de respuesta (resp.headers()
) o código de estado (resp.status_code()
).
Puede registrarse para obtener una cuenta de Stream en nuestra página de introducción.
Puede utilizar esta biblioteca para acceder a los puntos finales de la API de chat en el lado del servidor.
Para las integraciones del lado del cliente (web y móvil), consulte las bibliotecas SDK de JavaScript, iOS y Android (documentos).
$ pip install stream-chat
La biblioteca está casi 100% mecanografiada. No dude en habilitar mypy para nuestra biblioteca. Introduciremos más mejoras en el futuro en esta área.
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 ()
Agradecemos los cambios de código que mejoran esta biblioteca o solucionan un problema; asegúrese de seguir todas las mejores prácticas y agregar pruebas, si corresponde, antes de enviar una solicitud de extracción en Github. Estamos muy contentos de fusionar su código en el repositorio oficial. Asegúrese de firmar primero nuestro Acuerdo de licencia de colaborador (CLA). Consulte nuestro archivo de licencia para obtener más detalles.
Dirígete a CONTRIBUTING.md para obtener algunos consejos de desarrollo.
Recientemente cerramos una ronda de financiación Serie B de 38 millones de dólares y seguimos creciendo activamente. Nuestras API son utilizadas por más de mil millones de usuarios finales y usted tendrá la oportunidad de generar un gran impacto en el producto dentro de un equipo de los ingenieros más sólidos del mundo.
Consulte nuestras vacantes actuales y presente su solicitud a través del sitio web de Stream.