2016-07-11 21 views
0

Ich bin ganz neu in der Arbeit mit der SurveyMonkey API und relativ neu in Python/API Arbeit im Allgemeinen. Ich versuche, ein sehr einfaches Programm zu erstellen, das vorerst die Liste der Umfragen in meinem SurveyMonkey-Konto aufruft.Erste Schritte mit SurveyMonkey API v3

Hier ist, was ich beginne mit:

import requests 
import json 

client = requests.session() 
client.headers = { 
    "Authorization": "bearer %s" % "<MY_ACCESS_TOKEN>", 
    "Content-Type": "application/json" 
} 
client.params = { 
    "api_key" : "<MY_API_KEY>" 
} 

HOST = "https://api.surveymonkey.net" 
SURVEY_LIST_ENDPOINT = "/v3/surveys/get_survey_list" 

uri = "%s%s" % (HOST, SURVEY_LIST_ENDPOINT) 

data = {} 
response = client.get(uri, data=json.dumps(data)) 
response_json = response.json() 
survey_list = response_json["data"]["surveys"] 

Sobald er ausgeführt wird, ist dieser Code führt zu folgendem Fehler:

requests.exceptions.SSLError: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed 

Irgendwelche Ideen auf, wo ich falsch gehe? Jede Hilfe wird sehr geschätzt!

Antwort

1

Der von Ihnen verwendete Endpunkt /v3/surveys/get_survey_list existiert nicht in V3, er existiert in V2 (/v2/surveys/get_survey_list).

Siehe here für erhalten Umfrage Liste in v3. Versuchen Sie etwas wie:

import requests 

client = requests.session() 

headers = { 
    "Authorization": "bearer %s" % "<MY_ACCESS_TOKEN>", 
    "Content-Type": "application/json" 
} 
params = { 
    "api_key" : "<MY_API_KEY>" 
} 

HOST = "https://api.surveymonkey.net" 
SURVEY_LIST_ENDPOINT = "/v3/surveys" 

uri = "%s%s" % (HOST, SURVEY_LIST_ENDPOINT) 

response = client.get(uri, params=params, headers=headers) 
response_json = response.json() 
survey_list = response_json["data"]["surveys"] 
+0

Wow, vielen Dank für die schnelle Antwort! Ich habe versucht, Ihren genauen Code zu verwenden und erhalte immer noch den Fehler CERTIFICATE_VERIFY_FAILED. Ich benutze Python 2.7. Es scheint, als ob das Problem etwas mit dem verwendeten Zertifikat zu tun hat ... Ich habe wirklich keine Ahnung :( – user1944673

+1

Hmm, das scheint komisch, wenn Sie 'verify = False' in der client.get() Anfrage dann hinzufügen Ich werde aufhören zu überprüfen, dass (nicht für den Produktionseinsatz empfohlen), aber Sie sollten nicht müssen. Ich habe es einfach getan und ich habe dieses Problem nicht. –

+0

Verwendung von Verify = False löste mein Problem. Vielen Dank noch einmal für die Hilfe! – user1944673