2016-03-07 4 views
1

Я зашел на полпути через процесс Slack oauth и мог использовать некоторую помощь. Я имею Добавить к слабину добавлена ​​кнопка на мой сайт, и следующий шаг в соответствии с документацией, чтобы получить временный код:Извлечение временного кода из кнопки «Добавить в Slack»

Если пользователь разрешает приложение, натяжные будет перенаправлять обратно на указанный вами redirect_uri с временный код в коде GET параметр

Этот код необходим для вызова oauth.access, который вернет нужный токен. Кнопка «Добавить в слайк» работает по назначению и отправляет мне URL-адрес, содержащий код, но я не могу понять, как его программно получить с помощью Python 3.5. Я экспериментировал с библиотекой urllib (https://docs.python.org/3/library/urllib.request.html#urllib.request.HTTPRedirectHandler), а также с библиотекой запросов.

Корень моей проблемы в том, что мне нужно получить код с неизвестного URL. Вот ссылка на документацию, которую я читаю: https://api.slack.com/docs/oauth

Любая помощь или руководство очень ценятся!

ответ

0

От Slack Documentation:

Шаг 2 - Токен эмитенте
Если пользователь разрешает приложение, натяжные перенаправляет обратно в указанный Вами redirect_uri с временным кодом в параметре в code GET

Как только вы авторизировали свое приложение на экране согласия OAuth, Slack перенаправляет вас на redirect_uri, который вы передали ему на шаге 1 или тот, который вы установили на странице конфигурации приложения.

На стороне сервера вам необходимо будет прочитать параметр GET code для завершения потока OAuth.

Вот суть, которая показывает, как сделать основной слабину OAuth с Django: https://gist.github.com/xoneco/43cd18d5b991b8f5e288

Line 27 года показывает, как можно реализовать redirect_uri конечную точку и закончить OAuth Flow.

+0

Спасибо за ответ. В опубликованном фрагменте кода вы знаете начало параметра 'request', переданного oauthcallback? Я не уверен, как найти правильный URL-адрес, чтобы прочитать его параметр GET, хотя я могу просто увидеть его через браузер. – dcastello

+0

Параметр 'request' передается функции из Django. Он включает словарь 'GET', поэтому я могу получить значение параметра' code'. Все параметры запроса GET включены в этот словарь ([Ссылка для получения дополнительной информации] (https://docs.djangoproject.com/en/stable/ref/request-response/#httprequest-objects)) Какие рамки вы используете для всех из этого на данный момент? –

+0

На данный момент у нас нет рамки - просто код Python и веб-сайт, размещенный через Amazon EC2. Нужна ли мне структура, чтобы получить мой код в Интернете? Если да, рекомендуете ли вы Django? Конечным продуктом будет бот, обслуживающий многие команды Slack одновременно. – dcastello

Смежные вопросы