Новый API Twitch для получения данных json Python 3

Я пытаюсь получить скрипт Python, чтобы сказать, активен ли канал twitch, но не смог этого сделать, любая помощь будет оценена по достоинству.

вот документы, которые мне удалось найти https://dev.twitch.tv/docs/api/guide

Это то, что у меня есть, но я продолжаю получать «объект set не имеет атрибута« элементы »». Это модифицированный код из "Есть ли способ проверить, активен ли поток Twitch с помощью Python?», однако сейчас он устарел из-за нового API.

import requests
def checkUser(): 
    API_HEADERS = {
        'Client-ID : [client id here from dev portal]',
        'Accept : application/vnd.twitchtv.v5+json',
    }

    url = "https://api.twitch.tv/helix/streams/[streamer here]"

    req = requests.Session().get(url, headers=API_HEADERS)
    jsondata = req.json()
    print(jsondata)

checkUser()

person cool_dude_lion    schedule 09.06.2020    source источник
comment
api_headers — это не словарь, это набор из 2 строк   -  person E.Serra    schedule 09.06.2020


Ответы (1)


Ответ на вашу проблему «установить» объект не имеет атрибута «элементы» - это просто опечатка. Так должно быть

API_HEADERS = {
'Client-ID' : '[client id here from dev portal]',
'Accept' : 'application/vnd.twitchtv.v5+json'
}

Обратите внимание, что двоеточие теперь не является частью текста.

И чтобы ответить на ваш всеобъемлющий вопрос о том, как определить, находится ли канал в сети, вы можете взглянуть на этот пример кода, который я сделал.

import requests

URL = 'https://api.twitch.tv/helix/streams?user_login=[Channel_Name_Here]'
authURL = 'https://id.twitch.tv/oauth2/token'
Client_ID = [Your_client_ID]
Secret  = [Your Client_Secret]

AutParams = {'client_id': Client_ID,
             'client_secret': Secret,
             'grant_type': 'client_credentials'
             }


def Check():
    AutCall = requests.post(url=authURL, params=AutParams) 
    access_token = AutCall.json()['access_token']

    head = {
    'Client-ID' : Client_ID,
    'Authorization' :  "Bearer " + access_token
    }

    r = requests.get(URL, headers = head).json()['data']

    if r:
        r = r[0]
        if r['type'] == 'live':
            return True
        else:
            return False
    else:
        return False

print(Check())
person SomeWhatHappyDuk    schedule 02.12.2020