2016-07-11 4 views
0

Я новичок в работе с SurveyMonkey API и относительно новичок в Python/API в целом. Я пытаюсь создать очень простую программу, которая, во-первых, выведет список опросов на мою учетную запись SurveyMonkey.Начало работы с API SurveyMonkey v3

Вот что я начинаю с:

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"] 

При запуске этот код приводит к следующей ошибке:

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

Любые идеи о том, где я буду неправильно? Любая помощь высоко ценится!

ответ

1

Конечная точка, в которой вы использовали /v3/surveys/get_survey_list, не существует в V3, она существует в V2 (/v2/surveys/get_survey_list).

См. here для получения списка опросов в v3. Попробуйте что-то вроде:

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

Ничего себе, спасибо за быстрый ответ! Я попытался использовать ваш точный код, и я все еще получаю ошибку CERTIFICATE_VERIFY_FAILED. Я использую Python 2.7. Казалось бы, проблема связана с используемым сертификатом ... Я действительно не знаю :( – user1944673

+1

Хм кажется странным, если вы добавите 'verify = False' в request.get(), тогда он 'll перестать проверять это (не рекомендуется для использования в производстве), но вам не нужно. Я просто сделал это, и я не получил эту проблему. –

+0

Использование verify = False разрешил мою проблему. Еще раз спасибо за помощь! – user1944673

Смежные вопросы