Upload image_file using Ads API

2019-02-25 08:19发布

问题:

I'm trying to create a new Ad Creative for an event ad (Post-Migration), using the field image_file.

Via the Graph API Explorer I send the following post request:

URL: https://graph.facebook.com//act_xxxx/adcreatives

object_id: xxxxx

body: body here

title: title here

name: name here

image_file: @C:\Art.jpg

I get the following exception response:

"The Adcreative Create Failed for the following reason: Invalid image file: The image_file field does not specify a POST file name."

Apparently I'm not using the image_file parameter right. How should I use it?

回答1:

Try uploading image only, and than use image hash to upload creative.

Parameters:

[
 IMAGE_NAME => '@' + path
]

POST https://graph.facebook.com//act_xxxx/adimages 

IMAGE_NAME is name with extension - image.jpg, or image.png...

As the response, you will get

[
 'images' => [
    [
      'hash' => ...,
      'url' => ....
    ]
  ]
]

Than use the image hash you received and create ad creative with that.

If you want to do only one request, do next:

curl \
-F 'access_token=...' \
-F 'title=Test title' \
-F 'body=Test body' \
-F 'link_url=http://www.whatever.com' \
-F 'name=test creative' \
-F 'image_file=Art.jpg' \
-F 'Art.jpg=@C:\Art.jpg ' \
'https://graph.facebook.com/act_xxxx/adcreatives'