2017-02-22 120 views
1

我目前无法弄清楚如何获取我的长期访问令牌,因此我可以从Survey Monkey创建一个API数据源给Alteryx。Survey Monkey API-获取长期访问令牌

到目前为止,我已经能够:

1)转到页OAUTH HTTPS ://api.surveymonkey.net/oauth/authorize REDIRECT_URI = HTTPS:// www.surveymonkey.com & CLIENT_ID = [MY-CLIENT-ID] & RESPONSE_TYPE =代码

2)验证访问(我不是机器人:验证码)

3)获取与短命代码的认证响应 HTTPS:/ /万维网。 surveymonkey.com/home/?code=[CODE-FROM-RESPONSE]

4)卡住

来自:https://developer.surveymonkey.com/docs/guides/oauth-guide/

为了使交换,简单地创建一个形式编码(内容 - 类型:application/x-www-form-urlencoded)带有以下编码表单字段的https://api.surveymonkey.net/oauth/token?api_key=YOUR_API_KEY HTTP POST请求:client_secret,code,redirect_uri和grant_type。授权类型必须设置为“授权码”。

对我来说这不是一个“简单”,而是真的很感激这个表达,所以我可以将它输入到我的浏览器中,这样我就可以检索我的长期访问令牌。

最终目标是我使用Alteryx通过API提取Survey Monkey数据并创建混合数据集和附加系统数据。然后,组合的数据集将提供Tableau仪表板。我相信这是一个很长的过程,但如果任何人有一个用于Survey Monkey API的Alteryx工作流程,它可以一次性解决我所有的问题。

非常感谢您提供的见解/指导。

怀着感激, 德鲁

(注意:我添加空格几个环节,因为我没有10分的声誉;还)。

回答

1

在文档here的旁边有一个示例cURL请求。您需要向/oauth/token发出POST请求。它看起来像这样:

curl -X POST -H "Content-Type: application/x-www-form-urlencoded" -d 'code=<code>&client_id=<client_id>&client_secret=<client_secret>&redirect_uri=<redirect_uri>&grant_type=authorization_code' "https://api.surveymonkey.net/oauth/token" 

填写<>中的值。或者Python中,这样的事情应该工作:

import requests 

url = "https://api.surveymonkey.net/oauth/token" 

payload = { 
    "code": "<code>", 
    "client_id": "<client_id>", 
    "client_secret": "<client_secret>", 
    "redirect_uri": "<redirect_uri>", 
    "grant_type": "authorization_code" 
} 

headers = { 
    'content-type': "application/x-www-form-urlencoded" 
} 

response = requests.request("POST", url, data=payload, headers=headers) 

我敢肯定请求库将身体自动转换为正确的类型,但如果没有有效载荷看起来就像网址参数:

payload = "code=<code>&client_id=<client_id>&client_secret=<client_secret>&redirect_uri=<redirect_uri>&grant_type=authorization_code" 

本质上,您只需要使用上面提供的有效内容(代码,client_id,client_secret,redirect_uri和grant_type)向/oauth/token发出POST请求。主要令人困惑的部分是你不能发送一个JSON体,它必须是一个类似于上面我的例子的表单体。

希望有所帮助。

+0

非常感谢你的回应!这当然有帮助。 –

1

您应该能够接受General Kandalaft提供的回复,并将其输入到Alteryx的下载工具中。为每个客户端ID,客户端密码,代码,redirect_uri & grant_type创建一个字段,然后在Payload选项卡上勾选这些字段。

在同一选项卡上将HTTP操作设置为POST。

在Alteryx社区和图库中还有一些Oauth进程的例子。

通常,将cURL请求转换为下载工具时,-d/-F将是有效负载选项卡,-H当然是Headers选项卡。形式编码等通常已经正确,只需要偶尔添加/更改。作为另一个说明,如果你无法弄清楚cURL请求的转换或者它更复杂(即将PEM文件附加到调用中),你会在你的Alteryx安装目录中找到cURL的副本,而你可以使用运行命令工具来运行该工具。

凯恩

+0

谢谢KaneG--解决了这个问题! –