我正在尝试将图片发布到Facebook的广告API,https://developers.facebook.com/docs/reference/ads-api/adimage,他们的示例是
curl \
-F 'test.zip=@test.zip' \
-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 :(得分:0)
我们最近发布了Facebook Python广告API SDK(不知道是否在您的雷达上)。但您可以使用以下代码批量创建zip:
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自述文件包括使用您的应用ID,访问令牌等引导您的脚本。 https://github.com/facebook/facebook-python-ads-sdk
答案 1 :(得分: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
}
希望这有帮助。