В настоящее время у меня есть программа, которая позволяет мне программно создавать и публиковать информационные панели в Datadog. Используя функции API здесь, мне удалось успешно создать, обновить, и удаляйте дашборды, как мне нравится. Однако теперь я хотел бы извлечь скелет существующих панелей мониторинга, которые я уже создал из Datadog, чтобы увидеть, что было добавлено или удалено. Для этого мне нужно выяснить, как отправить ключ API вместе с запросом. У меня нет проблем с получением информации о досках более высокого уровня, но я хотел бы пойти еще дальше.
Это то, что я получаю, позвонив api.ScreenBoard.get_all()
{
'screenboards': [{
'read_only': <boolean>,
'resource': <resource-link>,
'description': <description>,
'created': <date>,
'title': <text>,
'modified': <date>,
'created_by': { ''' <creator information> ''' },
'id': <table-id>
}]
}
Теперь конечная цель - просто извлечь JSON из ссылки «ресурс», заданной этой командой. Я пытался использовать urllib и urllib2 для объединения этой ссылки с хост-сайтом (например, https://www.foo.com/{resource-link}
), но продолжаю получать следующие результаты:
<addinfourl at 0000000000 whose fp = <socket._fileobject object at 0x000000000>>
OR
{"errors": ["API key required"]}
Код, вызвавший эту ошибку:
def getSkeleton(self):
boards = self.getAll(); # utilizing the api.ScreenBoards.get_all() function
boardList = boards['screenboards'];
for x in boardList:
url = self.target + x['resource']; # creating the JSON url
data = urllib.urlopen(url).read();
print data
Как видите, моя переменная data возвращает ошибку. Итак, все, что мне нужно, это выяснить, как отправить ключ API вместе с моим запросом для решения проблемы. Если кто знает, как выполнить эту задачу, я был бы очень признателен.