Настройка API SurveyMonkey в Rails

Я довольно новичок во всех вещах OAuth. Некоторое время назад я использовал Facebook OAuth, но нашел его очень запутанным, хотя в конечном итоге я заставил его работать.

У меня есть приложение Rails/React, которое я хотел бы подключить к API Survey Monkey. В частности, я хочу создавать опросы на панели управления Survey Monkey, а затем делать GET запросы, чтобы получить всю эту информацию, а затем использовать ее для заполнения моих собственных форм, объединять их в POST и отправлять обратно в Survey Monkey.

Вроде просто, но не знаю с чего начать! Я создал общедоступное приложение, которое дало мне мои Client_ID и Secret_ID.

Я думаю, мой вопрос, буквально первый шаг здесь, с чего мне начать? Где я должен разместить идентификаторы client и secret? Кроме того, я предполагаю, что помимо настройки чего-либо, думаю, в папке config, я просто делаю все вызовы API в своем контроллере и, вероятно, не нуждаюсь в дополнительных файлах или папках.

Опять же, мне просто нужен реальный базовый совет по типу стартового блока. Если бы кто-то не возражал, это было бы очень большим подспорьем. Спасибо!


person vin_Bin87    schedule 06.11.2017    source источник


Ответы (2)


Я не могу говорить о рельсах, но для OAuth с SurveyMonkey инструкции доступны здесь< /а>.

По сути, с вашим идентификатором клиента и секретом клиента вам также необходимо установить uri перенаправления (маршрут в вашем приложении, скажем, /surveymonkey/oauth для отправки code, который вы можете использовать для обмена на токен доступа.

Поэтому, когда вы хотите получить доступ к учетной записи SurveyMonkey пользователя, вы отправите их где-то в своем приложении по адресу:

https://api.surveymonkey.net/oauth/authorize?client_id=<your_client_id>&response_type=code&redirect_uri=<your_redirect_uri>

Это покажет им страницу SurveyMonkey OAuth для вашего приложения, когда пользователь нажмет «Авторизовать», мы отправим их обратно на ваш URI перенаправления, который вы установили с помощью кода, например:

https://example.com/surveymonkey/oauth?code=<oauth_code>

Ваше представление извлекает код из параметра GET, затем вы можете обменять этот код на долгоживущий токен доступа, который вы где-то храните:

POST https://api.surveymonkey.net/oauth/token
Content-Type: application/x-www-form-urlencoded

client_secret=<your_secret> \
&code=<auth_code_you_just_got> \
&redirect_uri=<same_redirect_uri_as_before> \
&grant_type=authorization_code

Затем вы можете выполнять вызовы API к SurveyMonkey, добавляя заголовок Authorization: bearer <access_token> к своим вызовам API к api.surveymonkey.net/v3/*, и все готово.

person General Kandalaft    schedule 06.11.2017
comment
Спасибо за комментарий. Мы собираемся его использовать так, как если бы я был единственным пользователем OAuth, совершающим вызовы к API Survey Monkey и из него от имени своих пользователей. Мои пользователи дают ответы, а я даю вопросы/опросы. Что касается SurveyMonkey, то здесь я единственный пользователь..._ я думаю_. - person vin_Bin87; 06.11.2017
comment
О, круто. Сначала я просто предположил, что мы будем использовать общедоступное приложение, учитывая ограничение вызовов API с частным среди прочих. Вы думаете, что в этом случае использование private было бы наиболее разумным? Поскольку, как я уже сказал, мы взаимодействуем через вызовы API с нашей собственной информационной панелью SM и опросами, мы просто добавляем данные, предоставленные пользователями. Кроме того, я нашел этот драгоценный камень, который выглядит многообещающе. Это стратегия обезьяны github.com/techvalidate/omniauth-surveymonkey - person vin_Bin87; 06.11.2017
comment
omniauth-surveymonkey кажется хорошим выбором, вы можете использовать его, если он вам подходит. Общедоступные приложения требуют, чтобы вы опубликовали свое приложение в нашем каталоге приложений и разрешили его использование любому пользователю SM. Если это не ваша конечная цель, тогда вы должны быть частным приложением. См. часто задаваемые вопросы developer.surveymonkey.com/faq. - person General Kandalaft; 06.11.2017
comment
Отлично. Похоже, что Private - это то, что вам нужно. благодарю за разъяснение - person vin_Bin87; 07.11.2017

Вам следует обратиться к omniauth или подобному драгоценному камню, чтобы помочь вам во всем, что связано с oAuth. Для Survey Monkey не существует стратегии, но вы, вероятно, можете получить хорошее начало, чтобы увидеть, как эти стратегии реализуются.

Бонусные баллы, если вы сможете извлечь стратегию OmniAuth для Survey Monkey.

person Daniel Westendorf    schedule 06.11.2017