在 Rails 中设置 SurveyMonkey API

Setting up SurveyMonkey API in Rails

我对所有 OAuth 内容都比较陌生。不久前我做了一个 Facebook OAuth,但发现它非常混乱,尽管我最终让它工作了。

我有一个 Rails/React 应用程序,我想将其插入 Survey Monkey API。具体来说,我想在 Survey Monkey 仪表板中创建调查,然后发出 GET 请求以获取所有信息,然后用它来填充我自己的表单,将它们捆绑到 POST 中并发送 em回到 Survey Monkey。

看似简单,却不知从何入手!我创建了一个 Public 应用程序,它给了我 Client_IDSecret_ID

我想我的问题是,从字面上看是第一步,我从哪里开始?我应该把 clientsecret id 放在哪里?另外,我假设除了设置一些东西,我 认为 ,在 config 文件夹中,我只是在我的控制器中进行所有 API 调用,并且可能不需要额外的文件或文件夹。

同样,我只需要真正的准系统开始块类型的建议。如果有人不介意,那将是一个非常大的帮助。谢谢!

您应该参考 omniauth 或类似的 gem 来帮助您了解 oAuth。 Survey Monkey 没有现成的 strategy,但您可能可以很好地了解这些策略是如何实施的。

如果您可以为 Survey Monkey 提取 OmniAuth 策略,将加分。

我不能代表 rails 部分,但对于带有 SurveyMonkey 的 OAuth,可以使用说明 here

基本上,使用您的客户端 ID 和客户端密码,您还需要设置一个重定向 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 页面,当用户点击 "Authorize" 时,我们会将他们发送回您使用代码设置的重定向 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

然后,您可以通过将 header Authorization: bearer <access_token> 添加到对 api.surveymonkey.net/v3/* 的 API 调用来对 SurveyMonkey 进行 API 调用,这样就可以了去吧。