チャット アプリケーションを構築するためのサービスである 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 でプル リクエストを送信する前に、すべてのベスト プラクティスに従い、該当する場合はテストを追加してください。あなたのコードを公式リポジトリにマージできることを非常に嬉しく思います。最初に必ずコントリビューターライセンス契約 (CLA) に署名してください。詳細については、ライセンス ファイルを参照してください。
開発のヒントについては、CONTRIBUTING.md にアクセスしてください。
最近、3,800 万ドルのシリーズ B 資金調達ラウンドを完了し、積極的に成長を続けています。当社の API は 10 億人を超えるエンドユーザーによって使用されており、世界中の最も強力なエンジニアのチーム内で製品に大きな影響を与えるチャンスがあります。
現在の募集を確認し、Stream の Web サイトから応募してください。