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