stream chat python
v4.20.0
Stream Chat 的官方 Python API 客户端,这是一种用于构建聊天应用程序的服务。
探索文档 »
代码示例·报告错误·请求功能
v4.0主要更新<
返回的响应对象是
StreamResponse
类的实例。它继承自dict
,因此它完全向后兼容。此外,它还提供其他好处,例如速率限制信息 (resp.rate_limit()
)、响应标头 (resp.headers()
) 或状态代码 (resp.status_code()
)。
您可以在我们的“开始”页面注册 Stream 帐户。
您可以使用此库在服务器端访问聊天 API 端点。
对于客户端集成(Web 和移动),请查看 JavaScript、iOS 和 Android SDK 库(文档)。
$ pip install stream-chat
该库几乎 100% 都是打字的。请随意为我们的库启用 mypy。未来我们将在这方面推出更多改进。
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 ()
我们欢迎改进此库或解决问题的代码更改,请确保遵循所有最佳实践并添加测试(如果适用),然后再在 Github 上提交 Pull 请求。我们很高兴将您的代码合并到官方存储库中。请务必先签署我们的贡献者许可协议 (CLA)。有关更多详细信息,请参阅我们的许可证文件。
前往 CONTRIBUTING.md 了解一些开发技巧。
我们最近完成了 3800 万美元的 B 轮融资,并且我们一直在积极发展。我们的 API 被超过 10 亿最终用户使用,您将有机会在全球最强大的工程师团队中对产品产生巨大影响。
查看我们当前的空缺职位并通过 Stream 网站进行申请。