Question

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?

Was it helpful?

Solution

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'

OTHER TIPS

It is better to not use the " image_hash" but rather use a picture as a parameter to specify an image as https://example.com/image.png. Below is an example of the code, object_story_spec is required :

{ "link_data": { "picture": "https://prppublicstore.blob.core.windows.net/live-za-images/property/384/35/8570384/images/property-8570384-95103406_sd.jpg", "link": "<<LINK>>", "message": "try it out" }, "page_id": "<<PAGE_ID>>" }

A successful response should return an ID of the image as follows:

{
"id": "XXXXXXXXXXXXX"
}
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top