2014-10-09 63 views
0

我想要的图像发布到Facebook的广告API,https://developers.facebook.com/docs/reference/ads-api/adimage,他们的例子是空响应体POST请求到Facebook广告API

curl \ 
-F '[email protected]' \ 
-F 'access_token=<ACCESS_TOKEN>' \ 
"https://graph.facebook.com/act_<ACCOUNT_ID>/adimages" 

但是,当我这样做的请求:

payload = {'access_token': ACCESS_TOKEN, 
      image_name: post_image} 

r = requests.post(post_url, data=payload, stream=True) 

我得到一个空的响应主体。我如何解决这个问题,以便我可以得到响应体?

+0

你有白名单的应用程序? – luschn 2014-10-09 20:21:58

+0

我这样做,当我使用curl时,我得到了文档中提到的响应。只有当我用请求使用python时,我才会得到空的内容 – Hank 2014-10-09 20:23:23

回答

0

我们最近发布了Facebook的Python广告API SDK(不知道这是否在你的雷达)。

from facebookads.objects import AdImage 

image = AdImage(parent_id='act_<AD_ACCOUNT_ID>') 
image[AdImage.Field.filename] = './test.zip' 
image.remote_create(batch=True) 

# Output image hash. 
print image[AdImage.Field.hash] 

GitHub的README涵盖与您的应用程序ID,访问令牌等,这样引导您的脚本 https://github.com/facebook/facebook-python-ads-sdk

0

当使用Python努力,你需要:但是你可以通过批量拉链使用下面的代码创建首先在二进制模式下打开图像,然后将其转换为文件键。应仅分别给予有效载荷access_token。由于呼叫无法上传该图像,您将得到空的回复。

file_obj = {'filename': open(local_image_path, 'rb')} 
payload = {'access_token': ACCESS_TOKEN} 
response = requests.post(post_url, data=payload, files=file_obj) 

你会得到这样的回答:

{ 
    "id" : 123456789 
} 

希望这有助于。