我尝试按照中的批处理示例进行操作: http://developers.facebook.com/docs/reference/ads-api/batch-requests/
具体来说,curl命令:
curl -F 'access_token=____'
-F 'batch=[
{
"method": "POST",
"relative_url": "6004251715639",
"body": "redownload=1&max_bid=35"
},
{
"method": "POST",
"relative_url": "6004251716039",
"body": "redownload=1&max_bid=35"
},
{
"method": "POST",
"relative_url": "6004251715839",
"body": "redownload=1&max_bid=35"
}
]' https://graph.facebook.com
工作正常。在
当我尝试在python中使用urllib2时,我不知道如何模拟“-F”标志。在
当一个请求是“-d”时,我知道该怎么做:
^{pr2}$我用python代码模拟了它:
def sendCommand(self, url, dataForPost=None):
if dataForPost == None:
req = urllib2.Request(url)
else:
req = urllib2.Request(url, dataForPost)
jar = cookielib.CookieJar()
opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(jar))
content = opener.open(req)
response = content.read()
return response
如何模拟上面的-F命令?在
对于Python,我们可以使用Facepy来获取批处理请求的功能和处理Facebook图形API的分页。在
根据facebook的说法,graph api一次接受50个请求,但facepy为我们处理这个问题,也就是说,我们可以将尽可能多的请求附加到列表中并对其进行批处理。在
您的
sendCommand
函数应该可以工作。dataForPost需要字典。如果您传递它,下面的一个将复制-F函数用于access_token和batch。我使用"""
字符串文本并去除空白。您可以保留它,但是urllib2会尝试对其进行url编码,这可能会使调试更加困难。您可以尝试使用json库来生成批处理值。在相关问题 更多 >
编程相关推荐