1

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

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

1) 进入 OAUTH 页面 https://api.surveymonkey.net/oauth/authorize?redirect_uri=https://www.surveymonkey.com&client_id=[MY-CLIENT-ID]&response_type=code

2)认证访问(我不是机器人:reCAPTCHA)

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

4) 卡住了

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

要进行交换,只需使用以下内容向https://api.surveymonkey.net/oauth/token?api_key=YOUR_API_KEY创建一个表单编码(Content-Type: application/x-www-form-urlencoded)HTTP POST 请求 编码的表单字段:client_secret、code、redirect_uri 和 grant_type。授权类型必须设置为“authorization_code”。

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

最终目标是我使用 Alteryx 通过 API 提取 Survey Monkey 数据并创建一个包含其他系统数据的混合数据集。然后,组合的数据集将提供给 Tableau 仪表板。我敢肯定这是一个长远的目标,但如果有人有一个用于 Survey Monkey API 的 Alteryx 工作流,它可以一次解决我的所有问题。

提前感谢您的见解/指导。

怀着感激之情,德鲁

(注意 - 我在一些链接中添加了空格,因为我没有 10 个声望点;但是)。

4

2 回答 2

2

此处的文档旁边有一个示例 cURL 请求。您需要向/oauth/token. 它看起来像这样:

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)

我很确定请求库会自动将正文转换为正确的类型,但如果不是有效负载,则看起来像 URL 参数:

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

但本质上,您只需要/oauth/token使用上面提供的有效负载(code、client_id、client_secret、redirect_uri 和 grant_type)发出 POST 请求。主要令人困惑的部分是您不能发送 JSON 正文,它必须是看起来像我上面的示例的表单正文。

希望有帮助。

于 2017-02-22T19:57:49.577 回答
1

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

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

Alteryx 社区和图库中还有一些 Oauth 流程示例。

通常,将 cURL 请求转换为下载工具时,-d/-F 将是有效负载选项卡,-H 当然将是标头选项卡。形式编码等通常已经正确,只需要偶尔添加/更改。

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

凯恩

于 2017-02-23T22:23:36.343 回答