Esempio n. 1
0
def callback():
    """
    GET oauth token from Yandex Metrika API
    """

    code = request.args.get('code', '')
    chat_id = request.args.get('state', '')
    access_token = ''
    msg = ''

    if code and chat_id:
        try:
            s = requests.post('https://oauth.yandex.ru/token',
                                 data={'code': code, 'grant_type': 'authorization_code'},
                                 headers={'Content-type': 'application/x-www-form-urlencoded'},
                                 auth=(CConfig.MODULES['metrika']['ID'], CConfig.MODULES['metrika']['PASS']))

            access_token = s.json()['access_token']
            metrikaAPI = MetrikaAPI(access_token, '', chat_id)

            new_token = Metrika_tokens.create(app_id=CConfig.MODULES['metrika']['ID'],
                                          chat_id=chat_id,
                                          token=access_token)
            new_token.save()
            Handler.start(chat_id)

        except Exception as e:
            print(e)
            return "Error: %s" % e

    return msg