Cliente oficial da API Python para Stream Chat, um serviço para construção de aplicativos de chat.
Explore os documentos »
Amostras de código · Reportar bug · Solicitar recurso
Atualização importante na v4.0 <
Os objetos de resposta retornados são instâncias da classe
StreamResponse
. Ele herda dedict
, portanto é totalmente compatível com versões anteriores. Além disso, oferece outros benefícios, como informações de limite de taxa (resp.rate_limit()
), cabeçalhos de resposta (resp.headers()
) ou código de status (resp.status_code()
).
Você pode se inscrever para uma conta Stream em nossa página de primeiros passos.
Você pode usar esta biblioteca para acessar os endpoints da API de chat no lado do servidor.
Para as integrações do lado do cliente (web e mobile), dê uma olhada nas bibliotecas JavaScript, iOS e Android SDK (docs).
$ pip install stream-chat
A biblioteca está quase 100% digitada. Sinta-se à vontade para habilitar o mypy para nossa biblioteca. Introduziremos mais melhorias no futuro nesta á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 ()
Aceitamos alterações de código que melhorem esta biblioteca ou corrijam um problema. Certifique-se de seguir todas as práticas recomendadas e adicionar testes, se aplicável, antes de enviar uma solicitação pull no Github. Estamos muito felizes em mesclar seu código no repositório oficial. Certifique-se de assinar nosso Contrato de Licença de Colaborador (CLA) primeiro. Consulte nosso arquivo de licença para obter mais detalhes.
Acesse CONTRIBUTING.md para obter algumas dicas de desenvolvimento.
Fechamos recentemente uma rodada de financiamento da Série B de US$ 38 milhões e continuamos crescendo ativamente. Nossas APIs são usadas por mais de um bilhão de usuários finais, e você terá a chance de causar um enorme impacto no produto dentro de uma equipe dos mais fortes engenheiros de todo o mundo.
Confira nossas vagas atuais e inscreva-se através do site do Stream.