2017-02-22 33 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--解決了這個問題! –