调查猴子 api:未提供授权令牌错误
survey monkey api: authorization token was not provided error
我正在尝试使用调查猴子 APIs 从我们上周启动的一项调查中提取数据,但我总是出错。我已经在开发人员门户中注册了一个应用程序。我以“https://api.surveymonkey.com/oauth/authorize?response_type=code&redirect_uri=https%3A%2F%2Fapi.surveymonkey.com%2Fapi_console%2Foauth2callback&client_id=SurveyMonkeyApiConsole&api_key=u366xz3zv6s9jje5mm3495fk" as mentioned in Survey Monkey OAuth developer Cheat Sheet (https://gist.github.com/api-admin/11302313”这种格式添加了 'OAuth Redirect URL'。我还设置了范围并将应用程序状态标记为 'public'。
这是我调用 API 的代码。
import requests
url = "https://api.surveymonkey.net/v3/surveys/%s?api_key=%s" % (survey_id, YOUR_API_KEY)
s = requests.Session()
s.get(url).text
这是我得到的错误。
Out[41]: u'{"error": {"docs": "https://developer.surveymonkey.com/api/v3/#error-codes", "message": "The authorization token was not provided.", "id": "1010", "name": "Authorization Error", "http_status_code": 401}}'
使用API下载数据还需要做什么?我正在使用 SELECT 年度计划订阅。
您需要在 header 中设置访问令牌。我刚刚检查了文档中的示例,但它丢失了。文档应该是固定的。
OAuth 示例是 here。因此,特别是对于该请求,您需要执行以下操作:
headers = {
'Content-Type': 'application/json',
'Authorization': 'bearer ACCESS_TOKEN_HERE'
}
s.get(url, headers=headers)
这应该适合你。
我正在尝试使用调查猴子 APIs 从我们上周启动的一项调查中提取数据,但我总是出错。我已经在开发人员门户中注册了一个应用程序。我以“https://api.surveymonkey.com/oauth/authorize?response_type=code&redirect_uri=https%3A%2F%2Fapi.surveymonkey.com%2Fapi_console%2Foauth2callback&client_id=SurveyMonkeyApiConsole&api_key=u366xz3zv6s9jje5mm3495fk" as mentioned in Survey Monkey OAuth developer Cheat Sheet (https://gist.github.com/api-admin/11302313”这种格式添加了 'OAuth Redirect URL'。我还设置了范围并将应用程序状态标记为 'public'。
这是我调用 API 的代码。
import requests
url = "https://api.surveymonkey.net/v3/surveys/%s?api_key=%s" % (survey_id, YOUR_API_KEY)
s = requests.Session()
s.get(url).text
这是我得到的错误。
Out[41]: u'{"error": {"docs": "https://developer.surveymonkey.com/api/v3/#error-codes", "message": "The authorization token was not provided.", "id": "1010", "name": "Authorization Error", "http_status_code": 401}}'
使用API下载数据还需要做什么?我正在使用 SELECT 年度计划订阅。
您需要在 header 中设置访问令牌。我刚刚检查了文档中的示例,但它丢失了。文档应该是固定的。
OAuth 示例是 here。因此,特别是对于该请求,您需要执行以下操作:
headers = {
'Content-Type': 'application/json',
'Authorization': 'bearer ACCESS_TOKEN_HERE'
}
s.get(url, headers=headers)
这应该适合你。