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 網站進行申請。