我目前有一个程序,允许我创建仪表板并将其发布到Datadog。使用API函数here,我成功地创建、更新和删除仪表板。但是,现在我想提取我已经从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>
}]
}
现在,最终目标只是从这个命令给出的“resource”链接中提取JSON。我尝试使用urllib和urllib2将该链接与宿主站点合并(如https://www.foo.com/{resource-link}
),但我一直得到以下结果:
或者
{"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密钥与我的请求一起发送来解决问题。如果有人知道如何执行这项任务,我将非常感激。在
在搜索other issue时,我发现要解决这个问题,只需在URL中指定API密钥和应用程序密钥。考虑以下几点。在
使用requests库要简单得多
生成这样的请求头
像这样发送请求
^{pr2}$相关问题 更多 >
编程相关推荐