Как получить токен пользователя для Slack API - PullRequest
0 голосов
/ 03 ноября 2018

У меня есть полностью основанное на сценариях приложение Slack для Python, которое я хочу запустить, но для него нужен токен пользователя (а не бота). Я могу нормально использовать устаревшие токены, но хочу получить токен через oauth. У меня много проблем с выяснением, как это сделать! Я добавил локальное перенаправление в приложение и попробовал этот код:

def _get_credentials(self):

    credential_dir = os.path.join(PATH, '.credentials')

    if not os.path.exists(credential_dir):
        os.makedirs(credential_dir)

    credential_path = os.path.join(credential_dir,
                                   CREDENTIALS_LOCATION)

    store = oauth2client.file.Storage(credential_path)
    credentials = store.get()

    if not credentials or credentials.invalid:

        clientSecretPath = os.path.join(PATH, CLIENT_SECRET_FILE)
        flow = client.flow_from_clientsecrets(clientSecretPath, SCOPES)
        flow.user_agent = APPLICATION_NAME

        #### START PROBLEM ###

        credentials = tools.run_flow(flow, store)

        #### BREAKS ####

        print('Storing credentials to ' + credential_path)

    return credentials 

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

Во-первых, если файл учетных данных не существует, вместо создания он ломается.

Если я создаю пустой файл с нужным именем, веб-браузер открывается и запрашивает у пользователя аутентификацию. Если они это сделают, они переходят на страницу с надписью «процесс аутентификации завершен». Однако в терминале отображается Authentication has failed: Invalid response: 302, и в файл учетных данных ничего не сохраняется.

В любом случае он никогда не попадает в строку после #### BREAKS ####

Что я делаю не так, или еще лучше, как я могу сделать это правильно?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...