我正在使用Facebook Ads API,并且想知道广告图片的制作方式。这个页面https://developers.facebook.com/docs/reference/ads-api/adimage/#create使它看起来很简单,除了我不确定'test.jpg =@test.jpg'是怎么回事。什么是@ for以及它是如何工作的?
我目前在API文档(上面的链接)中描述了一个带有参数'pic.jpg'的帖子请求,其值为'@ https://s3.amazonaws.com/path/to/my/image.jpg',但响应是一个空数组而不是JSON对象使用API文档(上面的链接)中显示的'images'键。
有人可以解释在HTTP请求中指定文件的想法/过程/语法,或者更具体的Facebook Ads API吗?我不确定这里有什么用。
编辑: (我应该提一下,我正在使用python请求库。)
答案 0 :(得分:0)
@功能是上传文件。例如,它由curl和PHP支持。因此,如果您添加https链接,那么它不起作用并不奇怪
答案 1 :(得分:0)
首先,如果您想在Facebook Ads API上传图片,则无法提供网址,您必须为其提供真实路径。
在很多情况下,您可以直接使用'image_url'&给出图像的URL,但在某些情况下,您需要将图像上传到Facebook并使用它提供的HASH。
PHP / cURL实现$myPhoto = realpath('c.jpg'); $ch = curl_init(); $data = array('name' => "@{$myPhoto}",'access_token' => "{$access_token}"); $urlStr = "https://graph.facebook.com/act_{$ad_account_id}/adimages"; curl_setopt($ch, CURLOPT_URL, $urlStr); curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_POSTFIELDS, $data); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); $output = curl_exec($ch);
知道如何使用Python发布文件(参见:http://docs.python-requests.org/en/latest/user/quickstart/#post-a-multipart-encoded-file)
此外,您可以使用此库为您完成所有工作:https://github.com/jgorset/facepy