【问题标题】:Survey Monkey API- Getting Long Lived Access TokenSurvey Monkey API - 获取长寿命访问令牌
【发布时间】:2017-07-12 21:14:45
【问题描述】:

我目前无法弄清楚如何获取我的长期访问令牌,因此我可以创建从 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/

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

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

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

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

怀着感激之情, 画了

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

【问题讨论】:

    标签: api oauth api-design surveymonkey alteryx


    【解决方案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"
    

    填写&lt;&gt;中的值。或者在 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"
    

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

    希望对您有所帮助。

    【讨论】:

    • 非常感谢您的回复!这当然有帮助。
    【解决方案2】:

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

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

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

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

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

    凯恩

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-10-14
      • 2014-11-24
      • 1970-01-01
      • 2012-05-25
      • 2018-11-18
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多