调查Monkey API-获取长寿命访问令牌

调查Monkey API-获取长寿命访问令牌,api,oauth,api-design,surveymonkey,alteryx,Api,Oauth,Api Design,Surveymonkey,Alteryx,我目前无法弄清楚如何获得我的长期访问令牌,以便我可以创建一个从Survey Monkey到Alteryx的API数据源 到目前为止,我能够: 1) 转到OAUTH页面 https://api.surveymonkey.net/oauth/authorize?redirect\u uri=https://www.surveymonkey.com&client\u id=[MY-client-id]&response\u type=code 2) 验证访问权限(我不是机器人:reCAPTCHA) 3

我目前无法弄清楚如何获得我的长期访问令牌,以便我可以创建一个从Survey Monkey到Alteryx的API数据源

到目前为止,我能够:

1) 转到OAUTH页面 https://api.surveymonkey.net/oauth/authorize?redirect\u uri=https://www.surveymonkey.com&client\u id=[MY-client-id]&response\u type=code

2) 验证访问权限(我不是机器人:reCAPTCHA)

3) 使用短期代码获取身份验证响应 https://www.surveymonkey.com/home/?code=[code-FROM-RESPONSE]

4) 卡住了

发件人:

要进行交换,只需创建一个表单编码(内容类型:application/x-www-form-urlencoded)HTTP POST请求,并使用以下编码表单字段:client\u secret、code、redirect\u uri和grant\u Type。授权类型必须设置为“授权代码”

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

最终目标是,我使用Alteryx通过API拉入Survey Monkey数据,并使用其他系统数据创建一个混合数据集。然后,组合的数据集将提供给Tableau仪表板。我相信这是一个长期的目标,但如果有人有一个Alteryx workflow for Survey Monkey API,它将一次解决我所有的问题

提前感谢您的见解/指导

怀着感激之情, 德鲁


(注意-我在一些链接中添加了空格,因为我还没有10个信誉点;目前为止)

文档旁边有一个示例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"
curl-X POST-H“内容类型:应用程序/X-www-form-urlencoded”-d'code=
&client\u id=&client\u secret=&redirect\u uri=&grant\u Type=authorization\u 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)
导入请求
url=”https://api.surveymonkey.net/oauth/token"
有效载荷={
“代码”:“
”,
“客户id”:“,
“客户机密”:“,
“重定向uri”:“”,
“授权类型”:“授权代码”
}
标题={
“内容类型”:“应用程序/x-www-form-urlencoded”
}
响应=请求。请求(“POST”,url,数据=有效负载,标题=标题)
我很确定请求库会自动将正文转换为正确的类型,但如果不是这样,有效负载看起来就像URL参数:

payload = "code=<code>&client_id=<client_id>&client_secret=<client_secret>&redirect_uri=<redirect_uri>&grant_type=authorization_code"
payload=“code=
&client\u id=&client\u secret=&redirect\u uri=&grant\u type=authorization\u code”
基本上,您只需要使用上面提供的有效负载(代码、客户端id、客户端机密、重定向uri和授权类型)向
/oauth/token
发出POST请求。最让人困惑的是,您不能发送JSON主体,它必须是一个类似于上面示例的表单主体


希望有帮助。

您应该能够接受Kandalaft将军提供的响应,并将每个响应输入Alteryx中的下载工具。为每个客户端id、客户端密码、代码、重定向uri和授予类型创建一个字段,然后在有效负载选项卡上勾选这些字段

将HTTP操作设置为在同一选项卡上发布

Alteryx社区和Gallery上还有一些Oauth进程的示例

通常,在将cURL请求转换为下载工具时,-d/-F将是payload选项卡,-H当然将是Headers选项卡。表单编码etc通常已经正确,只需偶尔添加/更改

另一个注意事项是,如果您无法理解cURL请求的转换或者它更复杂(例如,将一个PEM文件附加到调用),您将在Alteryx安装目录中找到cURL的副本,您可以使用Run命令工具来运行它


凯恩

非常感谢您的回复!这当然有帮助。