Официальный API-клиент Python для Stream Chat, сервиса для создания чат-приложений.
Изучите документацию »
Примеры кода · Сообщить об ошибке · Запросить функцию
Основное обновление в версии 4.0 <
Возвращенные объекты ответа являются экземплярами класса
StreamResponse
. Он наследует отdict
, поэтому полностью обратно совместим. Кроме того, он предоставляет другие преимущества, такие как информация об ограничении скорости (resp.rate_limit()
), заголовки ответов (resp.headers()
) или код состояния (resp.status_code()
).
Вы можете зарегистрировать учетную запись Stream на нашей странице «Начало работы».
Вы можете использовать эту библиотеку для доступа к конечным точкам API чата на стороне сервера.
Для интеграции на стороне клиента (веб- и мобильных устройств) ознакомьтесь с библиотеками SDK JavaScript, iOS и Android (документация).
$ 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, чтобы получить несколько советов по разработке.
Недавно мы завершили раунд финансирования серии B на сумму 38 миллионов долларов и продолжаем активно расти. Наши API используют более миллиарда конечных пользователей, и у вас будет возможность оказать огромное влияние на продукт в команде сильнейших инженеров всего мира.
Ознакомьтесь с нашими текущими вакансиями и подайте заявку через веб-сайт Stream.