1

I'm getting an error from Facebook API.

string(135) "{"error":{"message":"(#100) The parameter data is required","type":"OAuthException","code":100,"fbtrace_id":"AGpuvWfJHaG5Dyx4ffRZ_e-"}}"

Here is their documentation: https://developers.facebook.com/docs/marketing-api/conversions-api/using-the-api

I have used the PayLoad Builder to create my PayLoad and used cURL to post it.

https://developers.facebook.com/docs/marketing-api/conversions-api/payload-helper/

` $pixelID = "MY PIXEL ID";
 $token = "MY TOKEN";
 $url = "https://graph.facebook.com/v10.0/$pixelID/events?access_token=$token";
$testEvent = "MY TEST ID";
$curl = curl_init($url);
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_POST, true);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
$headers = array(
 // "content-type: application/json",
);
curl_setopt($curl, CURLOPT_HTTPHEADER, $headers);
$data = '{
 "data": [
 {
 "event_name": "Purchase",
 "event_time": ' . $timestamp . ',
 "action_source": "website",
 "user_data": {
 "em": [
 "' . $email . '"
 ],
 "ph": [
 "' . $phonenumber . '"
 ],
 "fn": [
 "' . $firstName . '"
 ],
 "ln": [
 "' . $lastName . '"
 ],
 "ct": [
 "' . $city . '"
 ],
 "st": [
 "' . $county . '"
 ],
 "zp": [
 "' . $postCode . '"
 ],
 "country": [
 "0b407281768f0e833afef47ed464b6571d01ca4d53c12ce5c51d1462f4ad6677"
 ]
 },
 "custom_data": {
 "currency": "GBP",
 "value": "' . (float)$paytotal . '"
 }
 }
 ]
 },
 "test_event_code":"' . $testEvent . '"
';
curl_setopt($curl, CURLOPT_POSTFIELDS, $data);
$resp = curl_exec($curl);
curl_close($curl);
var_dump($resp);`

Can anyone help me to understand the issue? So far as I can tell I am sending "data:"

For completeness here is what arrives if I print $data

{
 "data": [
 {
 "event_name": "Purchase",
 "event_time": 1712266200,
 "action_source": "website",
 "user_data": {
 "em": [
 "74fede2a4644b6d958b33e48d085c6dcf1434cf74ac29486c824c64c62f4341b"
 ],
 "ph": [
 ""
 ],
 "fn": [
 "068b525cc8cebb28ec7f75c1814c9f9725ccb7a76e6f149049603f504ca5b668"
 ],
 "ln": [
 "7efa869d0364eea0cd0106a2ef4d1ae9eaec58fe62928c3f1af8fa8da9204ea0"
 ],
 "ct": [
 "0906246e56d65f9c0cc0929544494b52598175ebb86932e28727f1ebef16137e"
 ],
 "st": [
 "c153d60ae29ef1a1577a09285cece714e80f02904eb9a244e92d60d199901b9c"
 ],
 "zp": [
 "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
 ],
 "country": [
 "0b407281768f0e833afef47ed464b6571d01ca4d53c12ce5c51d1462f4ad6677"
 ]
 },
 "custom_data": {
 "currency": "GBP",
 "value": "112.5"
 }
 }
 ]
 },
 "test_event_code":"TEST7672"
 string(135) "{"error":{"message":"(#100) The parameter data is required","type":"OAuthException","code":100,"fbtrace_id":"AhL2jsc1CX21JzfetlQMjwZ"}}"
 
TylerH
21.3k85 gold badges84 silver badges122 bronze badges
asked Mar 28, 2024 at 13:20
1
  • I'm wondering if it's because I need to set this to fill in a form as their example is using -F Commented Mar 29, 2024 at 15:53

1 Answer 1

0

My final code was this. I hope it helps someone in the future.

$curl = curl_init($url);
 curl_setopt($curl, CURLOPT_URL, $url);
 curl_setopt($curl, CURLOPT_POST, true);
 curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
 $headers = array(
 "content-type: application/json",
 );
 
 curl_setopt($curl, CURLOPT_HTTPHEADER, $headers);
 
 $data = [
 'data' => [
 [
 'event_name' => 'Purchase',
 'event_time' => time(),
 'action_source' => "website",
 'user_data' => [
 'em' => [$email],
 'ph' => [$phonenumber],
 'fn' => [$firstName],
 'ln' => [$lastName],
 'ct' => [$city],
 'st' => [$county],
 'zp' => [$postCode],
 'country' => [
 "0b407281768f0e833afef47ed464b6571d01ca4d53c12ce5c51d1462f4ad6677"
 ]
 ],
 'custom_data' => [
 'currency' => 'GBP',
 'value' => (float)$totalPaid
 ]
 ]
 ]//,
 // 'test_event_code' => $testEvent
 ];
 
 curl_setopt($curl, CURLOPT_POSTFIELDS, json_encode($data));
 // print_r($data);
 $resp = curl_exec($curl);
 curl_close($curl);
 // var_dump($resp);

I think we just had to send things as key/pair and make sure it was JSON encoded.

answered Mar 29, 2024 at 17:48
Sign up to request clarification or add additional context in comments.

Comments

Your Answer

Draft saved
Draft discarded

Sign up or log in

Sign up using Google
Sign up using Email and Password

Post as a guest

Required, but never shown

Post as a guest

Required, but never shown

By clicking "Post Your Answer", you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.