Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/api/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 在Rails中设置SurveyMonkey API_Ruby On Rails_Api_Config_Surveymonkey - Fatal编程技术网

Ruby on rails 在Rails中设置SurveyMonkey API

Ruby on rails 在Rails中设置SurveyMonkey API,ruby-on-rails,api,config,surveymonkey,Ruby On Rails,Api,Config,Surveymonkey,我对所有OAuth的东西都相当陌生。不久前我做了一个FacebookOAuth,但发现它非常混乱,尽管我最终使它工作了 我有一个Rails/React应用程序,我想插入Survey Monkey API。具体来说,我想在Survey Monkey仪表板中创建调查,然后发出GET请求以获取所有信息,然后使用它填充我自己的表单,将它们打包成POST并将它们发送回Survey Monkey 看起来很简单,但我不知道从哪里开始!我创建了一个公共应用程序,它给了我的客户ID和机密ID 我想我的问题是,从这

我对所有OAuth的东西都相当陌生。不久前我做了一个FacebookOAuth,但发现它非常混乱,尽管我最终使它工作了

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

看起来很简单,但我不知道从哪里开始!我创建了一个公共应用程序,它给了我的
客户ID
机密ID

我想我的问题是,从这里的第一步开始,我从哪里开始?我应该把
客户端
机密
id放在哪里?另外,我假设除了在
config
文件夹中设置一些东西之外,我只在控制器中进行所有API调用,可能不需要额外的文件或文件夹


同样,我只需要真正的赤裸裸的开始块类型的建议这里。如果有人不介意,那将是一个很大的帮助。谢谢

您应该使用
omniauth
或类似的gem来帮助您实现oAuth的所有功能。目前还没有适用于Survey Monkey的工具,但您可能会看到这些策略是如何实现的


如果您可以为Survey Monkey提取OmniAuth策略,则可获得额外积分。

您应该查看
OmniAuth
或类似的gem,以帮助您实现oAuth的所有功能。目前还没有适用于Survey Monkey的工具,但您可能会看到这些策略是如何实现的


如果您可以为Survey Monkey提取OmniAuth策略,则可以获得额外的积分。

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

基本上,使用您的客户端ID和客户端机密,您还需要设置重定向uri(应用程序中的路由,例如
/surveymonkey/oauth
),以发送
代码,您可以使用该代码交换访问令牌

因此,当您想要访问用户的SurveyMonkey帐户时,您将在应用程序中的某个位置将其发送到:

https://api.surveymonkey.net/oauth/authorize?client_id=<your_client_id>&response_type=code&redirect_uri=<your_redirect_uri>
https://api.surveymonkey.net/oauth/authorize?client_id=&response_type=code&redirect_uri=
这将向他们显示应用程序的SurveyMonkey OAuth页面,当用户单击“授权”时,我们会将他们发送回您用代码设置的重定向URI,类似于:

https://example.com/surveymonkey/oauth?code=<oauth_code>
https://example.com/surveymonkey/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
POSThttps://api.surveymonkey.net/oauth/token
内容类型:application/x-www-form-urlencoded
客户端密码=\
&代码=\
&重定向\u uri=\
&授权类型=授权代码

然后,您可以通过向API.SurveyMonkey.net/v3/*
的API调用中添加头
Authorization:bearer
来调用SurveyMonkey,这样就可以了。

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

基本上,使用您的客户端ID和客户端机密,您还需要设置重定向uri(应用程序中的路由,例如
/surveymonkey/oauth
),以发送
代码,您可以使用该代码交换访问令牌

因此,当您想要访问用户的SurveyMonkey帐户时,您将在应用程序中的某个位置将其发送到:

https://api.surveymonkey.net/oauth/authorize?client_id=<your_client_id>&response_type=code&redirect_uri=<your_redirect_uri>
https://api.surveymonkey.net/oauth/authorize?client_id=&response_type=code&redirect_uri=
这将向他们显示应用程序的SurveyMonkey OAuth页面,当用户单击“授权”时,我们会将他们发送回您用代码设置的重定向URI,类似于:

https://example.com/surveymonkey/oauth?code=<oauth_code>
https://example.com/surveymonkey/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
POSThttps://api.surveymonkey.net/oauth/token
内容类型:application/x-www-form-urlencoded
客户端密码=\
&代码=\
&重定向\u uri=\
&授权类型=授权代码

然后,您可以通过将标题
Authorization:bearer
添加到对
API.SurveyMonkey.net/v3/*
的API调用中来对SurveyMonkey进行API调用,您就可以开始了。

谢谢您的评论。就我们使用它的方式而言,就好像我是唯一的OAuth用户,代表我的用户向SurveyMonkey API进行调用一样rs.我的用户提供答案,我提供问题/调查。就SurveyMonkey而言,我是这里唯一的用户…\u我认为\u。如果你只访问与应用程序所有者相同的帐户,那么你可能正在创建一个
私有
应用程序。在这种情况下,你可以使用集合中提供的访问令牌tings page或更好,为了安全起见,请参见以下关于如何仅为您自己的帐户提取代币的答案。哦,太酷了。我刚开始假设我们会使用公共应用程序,考虑到API调用的上限,其中包括Private。您认为在这种情况下,Private在这里最有意义吗?因为正如我所说,我们正在通过API调用与我们自己的SM仪表盘和调查,只是我们正在添加用户提供的数据。此外,我发现这个宝石看起来很有希望。这是一个猴子策略omniauth surveymonkey似乎是一个不错的选择,如果它对你有效,你可以使用它。公共应用程序要求你在我们的应用程序目录中发布你的应用程序,并允许它被任何SM用户使用。如果是这样的话“这不是你的最终目标,那么你应该成为一个私人应用程序。请参阅常见问题解答。很好。看起来私人应用才是最好的选择。感谢你的澄清和评论。我们将使用它的方式,就好像我是唯一的OAuth用户,代表我的用户向Survey Monkey API调用。我的用户正在提供答案,而我我提供问题/