Authentication
Twitch APIs use OAuth 2.0 access tokens to access resources. If you’re not already familiar with the specification, reading it may help you better understand how to get access tokens to use with the Twitch API.
The Twitch APIs use two types of access tokens: user access tokens and app access tokens. The reference content for each API identifies the type of access token you must use to access its resource. Some APIs require a user access token, others require a user access token or an app access token, and a few like the EventSub APIs require app access tokens.
IMPORTANT Treat access tokens, refresh tokens, and client secrets like a password and safeguard them.
User access tokens
APIs that require the user’s permission to access resources use user access tokens. Twitch uses scopes to identify the resources, or the fields within a resource, that your app needs permission to access. For example, you don’t need permission to get a user’s User resource but you do need their permission to include their email address with the resource.
The following example shows the dialog that Twitch displays to the user to get their permission for your app to create a Poll, stop a Poll, or get a list of their Polls. If the user clicks Authorize, Twitch gives your app an access token that lets it perform those actions.
Based on the type of app you’re building, you’ll use one of the following OAuth flows to get a user access token.
| Flow | Description |
|---|---|
| Implicit grant flow | Use this flow if your app does not use a server. For example, use this flow if your app is a client-side JavaScript app or mobile app. For details about getting a user access token using this flow, see Getting a user access token using the implicit grant flow. |
| Authorization code grant flow | Use this flow if your app uses a server, can securely store a client secret, and can make server-to-server requests to the Twitch API. For details about getting a user access token using this flow, see Getting a user access token using the authorization code grant flow. |
App access tokens
APIs that don’t require the user’s permission to access resources use app access tokens. For example, you can get a list of videos without the user’s permission.
You should get an app access token, if your app only calls APIs that don’t require the user’s permission to access the resource. But if your app also calls APIs that require a user access token, you should just get a user access token because in most cases you can use the user access token to call APIs that accept app access tokens. The exception is if you call the EventSub APIs (for example, Create EventSub Subscription). If you call the EventSub APIs and use webhooks, you must also get an app access token because the calls fail if you try to use a user access token.
To get an app access token, use the client credentials grant flow. For details, see Getting an app access token using the client credentials grant flow.
Authentication flows
The following table summarizes the flows you can use and the type of access token it returns.
| Procedure | User Access Token | ID Token | App Access Token |
|---|---|---|---|
| OIDC Implicit Code Flow | ✔ | ✔ | |
| OAuth Implicit Code Flow | ✔ | ||
| OIDC Authorization Code Flow | ✔ | ✔ | |
| OAuth Authorization Code Grant Flow | ✔ | ||
| OAuth Client Credentials Flow | ✔ |
NOTE An ID token or identity token encodes the user’s identity in a JSON Web Token (JWT). It’s used in OpenID Connect client apps to sign in users. You cannot use the ID token in place of a user or app access token when calling the Twitch API. Read more about ID tokens.
Passing the access token to the API
After getting an access token using one of the above authentication flows, use it to set an API request’s Authorization header.
Authorization: Bearer <access token goes here>
For an API request that shows using the header, see Get channel information.
Tokens don’t last forever
Access and refresh tokens can become invalid for the following reasons:
- The token expires.
- The user changes their password.
- Twitch revokes the token.
- The user disconnects your app by going to their account’s /settings/connections page and clicking Disconnect next to your app’s name.
If a token becomes invalid, your API requests return HTTP status code 401 Unauthorized. When this happens, you’ll need to get a new access token using the appropriate flow for your app.
Validating tokens for 3rd-party apps
Third-party apps that call the Twitch APIs and maintain an OAuth session must call the /validate endpoint to verify that the access token is still valid. Read more
Next steps
Before you can get an access token you need to register your app. For details, see Registering your app.
Приложения и Аутентификация
Это руководство поможет разработчикам использовать Twitch Authentication, что позволяет вашему приложению выполнять действия от имени учетной записи Twitch или получать доступ к определенным данным об учетной записи пользователя. Существует несколько способов получить доступ к учетной записи Twitch от имени пользователя. Мы используем части протокола OAuth 2.0.
В дополнение к OAuth Twitch поддерживает OIDC (OpenID Connect) для более безопасного потока OAuth 2.0. Тонеры OIDC совместимы с услугами, созданными для соответствия требованиям OIDC, такими как Cognito от Amazon Web Services.
Аутентификация включает:
- 1. Зарегистрируйте свое приложение, чтобы получить идентификатор клиента и секрет клиента.
- 2. Получение токена. Это включает указание областей или разрешений, требуемых вашим приложением.
- 3. Отправка маркера в ваш запрос API для аутентификации запросов API.
Когда мы описываем этапы, мы предоставляем образцы запросов, которые будет создано вашим приложением, чтобы ваши пользователи предоставили вам доступ к их активности просмотра.
Для удобства чтения часть кода с параметризованным примером показана на нескольких строках; реальные примеры находятся на одной линии.
Образцы кода доступны на странице Get Started на веб-сайте Twitch.
Предупреждение: обрабатывайте свой токен как пароль. Например, никогда не используйте токены доступа в любом общедоступном URL-адресе и никогда не показывайте маркеры на любой веб-странице, не требуя щелчка, чтобы удалить обфускацию. Держите жетоны в секрете!
Проверка запросов
Для разработчиков, которые используют аутентификацию Twitch для целей входа в систему, токены доступа должны быть проверены на повторяющийся интервал. Если ваша служба использует Twitch в качестве формы аутентификации (чтобы убедиться, что пользователи — те, кого они говорят в своем приложении), периодическая проверка ранее выпущенных токенов OAuth гарантирует, что пользователи, которые разрешили ваше приложение, не решили отключить интеграцию.
Мы рекомендуем проверять токены доступа перед тем, как делать запросы API, которые выполняют мутации, или получают доступ к конфиденциальной информации пользователей, если прошло более одного часа с момента последней проверки.
Twitch периодически проводит аудит. Если мы обнаружим приложение, которое не повторяет проверку токенов доступа (то есть приложение, которое проверяет только для входа в систему, а не после этого), мы будем обращаться к разработчикам и работать с ними для решения проблемы. Если проблема не устранена, мы можем предпринять карательные действия, такие как аннулирование ключа API разработчика или дросселирование производительности приложения.
Валидация важна из-за того, как работают токены доступа OAuth и ожидания конечного пользователя для контроля сеанса OAuth. Например, пользователи, которые предпочитают отключать вашу интеграцию со своими учетными записями Twitch, могут сделать это из своих настроек учетной записи в Twitch. Когда пользователь отключается от интеграции, все токены OAuth между этим пользователем и эта интеграция аннулируются. В этом случае ожидается, что токены OAuth привязаны к сеансам сторонних служб; как таковые, любые существующие сеансы между отключенным пользователем и этими службами также должны быть аннулированы.
При проверке каждого из ваших запросов отправьте запрос конечной точке проверки (https://id.twitch.tv/oauth2/validate) с вашим токеном OAuth в заголовке. Если вы аутентифицированы, ответ включает статус вашего токена. Успешный ответ указывает, что ваш токен доступа действителен.
Вот пример запроса:
И вот пример ответа:
Регистрация
Чтобы создать приложение, использующее API Twitch, сначала необходимо зарегистрировать свое приложение на сайте разработчика Twitch. При создании этого приложения введите свой URI перенаправления, в котором пользователи перенаправляются после авторизации.
После создания приложения-разработчика вам присваивается идентификатор клиента. Некоторые потоки аутентификации также требуют секретности клиента, которую вы можете создать на той же странице, что и идентификатор клиента.
- Склиент ID являются общедоступными и могут быть колективными (например, встроены в источник веб-страницы).
- Секреты клиента эквивалентны паролю для вашего приложения и должны быть конфиденциальными. Никогда не выставляйте его пользователям, даже в неясной форме.
Поскольку секрет вашего клиента является конфиденциальным, мы не можем показать его вам после того, как вы покинете страницу, поэтому обязательно записывайте ее где-нибудь в безопасности. Кроме того, генерация нового секретного ключа немедленно аннулирует текущий, что может привести к сбою ваших запросов API до тех пор, пока ваше приложение не будет обновлено.
Предупреждение: Идентификаторы клиентов должны быть уникальными для каждого приложения: не используйте повторно идентификаторы клиентов в нескольких приложениях. Кроме того, приложения должны запросить соответствующий набор областей для целевых API-интерфейсов. Несоблюдение этих рекомендаций может привести к приостановке доступа вашего приложения к API Twitch.
Типы токенов
Twitch поддерживает несколько типов токенов:
Набор требований к конечному пользователю для данной авторизации. Использование токенов идентификатора OIDC (JWT) позволяет вам получить подробную информацию о вашем пользователе (например, адрес электронной почты) для конкретной авторизации. Эти данные представлены заявками в полезной нагрузке токена идентификатора.
Наша конечная точка обнаружения находится по адресу https://id.twitch.tv/oauth2/.well-known/openid-configuration. Его можно использовать со стандартными клиентами OIDC, такими как AWS Cognito.
Аутентифицируйте пользователей и разрешите вашему приложению делать запросы от их имени. Если ваше приложение использует Twitch для входа в систему или делает запросы в контексте аутентифицированного пользователя, вам необходимо создать токен доступа пользователя.
Аутентифицируйте приложение и разрешите ему доступ к ресурсам, которыми он владеет. Поскольку токены доступа приложений не связаны с пользователем, они не могут использоваться с конечными точками, требующими аутентификации пользователя.
Некоторые конечные точки Twitch API требуют проверки подлинности приложения (не аутентификации пользователя). Если ваше приложение использует эти конечные точки, вам необходимо создать токен доступа к приложениям. Точки доступа к доступу получают учетные данные клиента (а не учетные данные пользователя). Они позволяют вам делать безопасные запросы API, которые не от имени конкретного пользователя. Учетные данные клиента также могут использоваться вместо заголовков идентификаторов клиента для надежной идентификации вашего приложения.
Точки доступа к приложениям истекают примерно через 60 дней, поэтому вы должны проверить, что токен доступа к вашему приложению действителен, отправив запрос на конечную точку проверки (см. Проверка запросов). Если ваш токен истек, создайте новый.
Точки доступа к приложениям предназначены только для запросов API-интерфейсов сервер-сервер и никогда не должны включаться в код клиента.
Получение токенов
Домен, посвященный аутентификации Twitch, — https://id.twitch.tv. (Предыдущие посетители этой страницы будут замечать, что URL-адреса были обновлены, чтобы заменить https://api.twitch.tv/kraken на https://id.twitch.tv. Код, который использует старый домен kraken для проверки подлинности Twitch, будет продолжен работать до конца 2018 года, когда мы удаляем функциональность Twitch API v5. Twitch API v5 в настоящее время устарел.)
Мы поддерживаем несколько потоков аутентификации:
| Тип потока | Описание |
| Неявный поток кода | В вашем приложении не используется сервер, например клиентское приложение JavaScript или мобильное приложение. Этот подход не требует сервера, который должен делать запросы к API. |
| Кодирование кода авторизации | Ваше приложение использует сервер, может безопасно хранить секрет клиента и может выполнять запросы сервера к серверу. |
| Поток клиентских учетных данных | Вам нужен токен доступа к приложениям. |
Процедура, которую вы должны использовать для получения токенов, зависит от типов) тонов, которые вы хотите:
| Процедура | Токен доступа пользователя | ID токен | Токен доступа к приложениям |
| Неявный поток кода OIDC | |||
| Неявный поток кода OAuth | |||
| Поток кода авторизации OIDC | |||
| Поток кода авторизации OAuth | |||
| Поток учетных данных клиента OAuth |
В целях безопасности в примерах в этих разделах используется токен поддельного доступа, 0123456789abcdefghijABCDEFGHIJ .
Отправка доступа пользователей и токенов доступа к приложениям
Когда запрос API требует аутентификации, отправьте токен доступа в виде заголовка. Заголовок отличается, в зависимости от того, какой API вы используете:
В новом Twitch API:
Отмена токенов доступа
Чтобы очистить ранее полученные токены доступа, используйте конечную точку торможения токена Twitch OAuth. Его реализация соответствует стандарту OAuth.
На своем сервере отмените токен доступа, выполнив этот запрос:
Например, используя вашего ранее аутентифицированного пользователя, запрос:
Этот запрос также работает для токенов доступа к приложениям. Чтобы аннулировать токен доступа к приложениям, который мы создали ранее, сделайте этот запрос:
Как успешные запросы, так и запросы с плохими токенами возвращают 200 OK без тела. Запросы с плохими токенами возвращают один и тот же ответ, поскольку нет значимого действия, которое клиент может предпринять после отправки плохого токена.
Запрошенные неверные запросы возвращают 400 Bad Request , а также информацию о том, как исправить запрос, как правило, напоминание запрашивающего, чтобы включить client_id .
Обновление токенов доступа
Новые токены доступа OAuth2 истекают. Периоды истечения срока действия токена различаются по длине, основываясь на том, как был получен токен. Токены возвращают поле expires_in , указывающее, как долго должен продолжаться токен. Однако вы должны создавать свои приложения таким образом, чтобы они были устойчивыми к ошибкам аутентификации токена. Другими словами, приложение, способное обновлять токены, не должно знать, как долго будет действовать токен. Скорее, он должен быть готов к тому, чтобы токен стал недействительным в любое время.
Чтобы позволить приложениям оставаться аутентифицированными в течение длительного времени в мире истекающих токенов, мы разрешаем обновлять сеансы в соответствии с рекомендациями в разделе «Обновление токена доступа» в RFC OAuth2. Как правило, обновлять токены используются для продления срока службы заданной авторизации.
Выходы токена не влияют на существующие токены. В будущем мы будем отзывать постоянно живущие сессии.
(Обратите внимание, что токены доступа и токены доступа не могут быть обновлены.)
How to Refresh
Чтобы обновить токен, вам нужна пара токенов доступа / обновления, исходящая из тела. Например:
Вам также нужны client_id и client_secret , используемые для создания указанной пары токенов доступа / обновления доступа
Чтобы обновить, используйте этот запрос:
Существует несколько требуемых параметров и один необязательный параметр:
Данный сайт разрабатываеться для удобного искользовани Twitch Developer в России.
twitch
Получение токена OAuth с использованием потока кода авторизации
Сначала вы отправите пользователя в конечную точку авторизации Twitch. Этот URL-адрес состоит из базового URL-адреса авторизации ( https://api.twitch.tv/kraken/oauth2/authorize ) и параметров строки запроса, которые определяют то, что вы запрашиваете. Необходимыми параметрами являются response_type , client_id , redirect_uri и scope .
Для потока кода авторизации параметр response_type всегда устанавливается в code . Это означает, что вы запрашиваете код авторизации из API Twitch.
redirect_uri — это то место, где пользователь будет перенаправлен после того, как он одобрит области применения вашего приложения. Это должно совпадать с тем, что вы зарегистрировали на странице подключений учетной записи Twitch.
client_id — уникальный идентификатор вашего приложения. Вы также можете найти свой идентификатор клиента на странице «Подключения».
scope определяет, к чему у вас есть доступ от имени пользователя. Вы должны запросить только минимальные требования, необходимые для работы вашего приложения. Вы можете найти список областей применения Twitch API GitHub .
Параметр state также поддерживается для защиты от атак межсайтовых сценариев. Параметр state будет включен в redirect_uri когда пользователь авторизует ваше приложение.
Получить код авторизации из строки запроса
Когда пользователь перейдет к конечной точке авторизации, им будет предложено предоставить разрешение вашей заявки на запрашиваемые вами области. Они могут отказаться от этого, поэтому вы должны обязательно учитывать это в своем коде. После того, как они разрешат вашему приложению доступ, пользователь будет перенаправлен на URL-адрес, указанный вами в redirect_uri . Строка запроса теперь будет иметь параметр code , который является кодом авторизации, который вы можете обменять на токен OAuth.
Как найти свой ключ трансляции Twitch в 2023 году
Хотя многие программы для потоковой передачи теперь позволяют вам войти в свою учетную запись Twitch, все еще могут быть случаи, когда вам нужен ключ трансляции. Если вы изо всех сил пытаетесь найти свой ключ трансляции, следуйте этому руководству, и мы покажем вам, как быстро его найти.
Что такое ключ трансляции на Twitch?
Ключ потока позволяет вашему программному обеспечению для потоковой передачи, такому как OBS, отправлять данные на ваш канал на Twitch. Ключ потока уникален для вашего профиля, поэтому, когда вы нажмете на OBS, ваше потоковое видео будет отправлено прямо на ваш канал для просмотра вашими зрителями.
Никогда и нигде публично не показывайте свой ключ трансляции, так как это позволит другим транслировать на вашем канале. Если у них есть ваш потоковый ключ, они могут подключить его к своему программному обеспечению и транслировать видео в прямом эфире на вашем канале, даже без вашего имени пользователя и пароля.
Когда Twitch был взломан в конце 2021 года, возникло опасение, что ключи потоковой передачи людей просочились, поэтому Twitch разослал электронное письмо с предложением всем изменить свой ключ потоковой передачи.
Как найти свой ключ трансляции на Twitch
Если вам нужен ключ трансляции, выполните следующие действия, чтобы найти его на Twitch:
- Перейдите на Twitch.tv и войдите в свою учетную запись.
- Нажмите на изображение своего профиля в правом верхнем углу и нажмите «Панель создателя».

- В панели Creator перейдите в «Настройки» -> «Поток».
- В разделе «Ключ потока и настройки» первое, что вы увидите, — это ваш основной ключ потока.
- С правой стороны нажмите «Копировать», чтобы скопировать ключ потока в буфер обмена. Теперь вы можете вставить этот ключ потока туда, куда вам нужно.
Получить потоковый ключ для Twitch очень просто.
Как сбросить ключ трансляции на Twitch
Если вы считаете, что кто-то может получить доступ к вашему ключу трансляции или вы случайно показали свой ключ трансляции в потоке, вам следует немедленно сбросить его. Сброс вашего ключа не позволит никому транслировать на ваш канал без вашего разрешения.
Чтобы сбросить ключ трансляции, выполните следующие действия:
- Перейдите на Twitch.tv и войдите в свою учетную запись.
- Нажмите на изображение своего профиля в правом верхнем углу и нажмите «Панель создателя».
- В панели Creator нажмите «Настройки» -> «Поток».
- В разделе «Ключ потока и настройки» вы увидите «Первичный ключ потока». Справа есть кнопка Reset
- Нажмите кнопку «Сброс», чтобы немедленно сбросить ключ трансляции.
Помните, что когда вы сбрасываете свой ключ потока, вам нужно будет обновить его в любом программном обеспечении для потоковой передачи, которое вы используете для потоковой передачи.
Куда поместить ключ трансляции в OBS Studio
Если вы хотите транслировать из OBS, используя свой ключ трансляции, выполните следующие действия, чтобы подключить OBS к Twitch:
- Скопируйте ключ потока из Twitch, используя шаги, которые мы упоминали выше.
- Открыть ОБС студию
- В OBS Studio перейдите в «Настройки» -> «Поток».
- Здесь вы можете либо войти в свою учетную запись Twitch, либо использовать ключ трансляции. Чтобы использовать ключ трансляции, нажмите «Использовать ключ трансляции».
- Вставьте свой ключ трансляции в поле «Ключ трансляции» и нажмите «ОК».
Теперь ваша учетная запись Twitch будет связана с OBS через ваш ключ трансляции. Теперь, когда вы нажмете «Начать трансляцию», вы начнете трансляцию на свой канал на Twitch.
Должен ли я использовать ключ трансляции или учетную запись в OBS?
Поскольку OBS запустил функцию автоматического входа в вашу учетную запись Twitch через программное обеспечение, нет особых причин использовать Stream Key. Самый безопасный способ — войти в Twitch через OBS, чтобы подключить свою учетную запись.
Можно ли делиться своим ключом трансляции с людьми на Twitch?
Нет, вы никогда не должны делиться своим ключом трансляции с кем-либо. Если у кого-то есть ваш ключ трансляции, он дает им полный доступ к трансляции на вашем канале. Есть люди, которые попытаются обманом заставить вас дать им ваш ключ трансляции, чтобы они могли использовать ваш канал для мошенничества и т. д. Будьте бдительны и никогда никому не передавайте свой ключ трансляции.
Есть одна ситуация, когда вы можете захотеть поделиться с кем-то ключом потока. Например, если у вас есть канал Twitch, на котором несколько стримеров в течение недели, вы можете дать им ключ для потоковой передачи на канал.
Как поделиться ключом трансляции с кем-то
Если вы хотите поделиться ключом трансляции с кем-то, кому вы доверяете, выполните следующие действия:
- Перейдите на Twitch.tv и войдите в свою учетную запись.
- Нажмите на изображение своего профиля в правом верхнем углу и перейдите на панель инструментов Creator.
- Перейдите в «Настройки» -> «Поток».
- Прокрутите вниз до раздела «Разрешения» и нажмите «Люди, которые могут транслировать на ваш канал» .
- Введите адрес электронной почты человека, которого хотите пригласить на свой канал. Затем этому пользователю будет отправлен ключ потока, который он может использовать для прямой трансляции на ваш канал.
Подведение итогов
Так же просто найти свой ключ трансляции и даже изменить его, если вам нужно. Не забывайте всегда держать ключ трансляции в секрете. Наслаждайтесь потоковой передачей