async def METHOD_NAME(self):
    """Use OAuth2 to request a new token. If token fails, disable the source."""
    client_id = self.bot.config['news']['twitch']['client_id']
    self.client_id = client_id
    client_secret = self.bot.config['news']['twitch']['client_secret']
    params = {
        'client_id': client_id,
        'client_secret': client_secret,
        'grant_type': 'client_credentials'
    }
    response = await self.http_session.post(self.token_url, params=params)
    response = await response.json()
    try:
        self.access_token = response['access_token']
    except KeyError:
        logger.critical(f"Error in {self.full_name} Token Get: {response['message']}")
        self.disabled = True
        return
    expiry_seconds = response['expires_in']
    time_delta = datetime.timedelta(seconds=expiry_seconds)
    self.expiry_time = datetime.datetime.now() + time_delta