Twitch API возвращает 403 с авторизацией и идентификатором клиента?

Я пытаюсь перечислить активные потоки Twitch из идентификатора игры.

Мой код выглядит следующим образом:

$ch = curl_init();
$URL = 'https://api.twitch.tv/helix/streams?game_id=3412';
$X = [
    'Authorization: Bearer {Client Secret}',
    'Client-ID: {Client ID}',
];
curl_setopt($ch, CURLOPT_URL, $URL);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, true);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'GET');
curl_setopt($ch, CURLOPT_HTTPHEADER, $X);

$result = curl_exec($ch);

Результатом должны быть потоки для Grand Theft Auto III, однако я получаю следующий ответ:

object(stdClass)[121]
  public 'error' => string 'Unauthorized' (length=12)
  public 'status' => int 401
  public 'message' => string 'Invalid OAuth token' (length=19)

Я создал новый секрет и убедился, что мой идентификатор клиента верен. Я следил за этой документацией: https://dev.twitch.tv/docs/api/reference#get-streams

Почесал голову здесь, я делал это раньше на старом API. Я нашел разных людей с одной и той же проблемой, но не смог воспроизвести какое-либо из их решений. У кого-нибудь есть идеи? Спасибо.


person Jake    schedule 13.10.2020    source источник
comment
Я считаю, что KEY в авторизации не совпадает с KEY в Client-ID   -  person codeomnitrix    schedule 13.10.2020
comment
@codeomnitrix Извините за путаницу, я отправляю свой идентификатор клиента и секрет клиента отдельно, мой исходный пост сделал это запутанным, и я обновляю его.   -  person Jake    schedule 13.10.2020
comment
Все выглядит хорошо. Вам просто нужно трижды проверить, что вы устанавливаете правильные значения для токена носителя и идентификатора клиента. Убедитесь, что вы случайно не скопировали пробельные символы или что-то в этом роде.   -  person Phil    schedule 13.10.2020
comment
@Phil Я проверил и запустил его через консоль, чтобы убедиться, что PHP ничего не подделывает. Я также пробовал несколько примеров, которые они перечислили, используя свои собственные токены, и ничего не работает. Закончились идеи.   -  person Jake    schedule 13.10.2020
comment
Пробовали ли вы свои токены с помощью curl или Postman?   -  person Phil    schedule 13.10.2020
comment
@Фил Оба на самом деле. Я получаю один и тот же ответ в обоих случаях.   -  person Jake    schedule 13.10.2020
comment
Тогда это не имеет ничего общего с вашим кодом. Токены, которые вы используете, просто неверны. Здесь никто ничем не может вам помочь (если только вы не хотите поделиться своими реальными токенами). Можете ли вы открыть вопрос поддержки с поставщиком API?   -  person Phil    schedule 13.10.2020
comment
@Phil Боюсь, что ты это скажешь. Я должен буду связаться с ними. Я пробовал создать новое приложение, и ничего не работает. Сообщит об обновлении, если им есть что сказать по этому поводу.   -  person Jake    schedule 13.10.2020


Ответы (1)


Вам необходимо получить токен авторизации, который отделен от секрет клиента для использования в заголовке авторизации. Поток учетных данных клиента является самым простым из трех поддерживаемых и подходит для внутренних вызовов API, которые не выполняются от имени какого-либо конкретного пользователя.

person 3ventic    schedule 13.10.2020