我正在使用Facebook Marketing API上传离线转化。
附带的代码可以运行到大约2周前,现在报告以下错误。
{“错误”:{“消息”:“(#100)参数数据是必需的”,“类型”:“ OAuthException”,“代码”:100,“ fbtrace_id”:“ HkpzkWB1I5g”}}} >
我不明白为什么它应该在按预期工作了这么长时间后才停止工作。我不知道该如何解决。有什么想法吗?
$data=array();
$data["match_keys"]["email"]=$emails;
$data["match_keys"]["phone"]=$mobiles;
$data["match_keys"]["fn"]=hash("sha256",$first_name);
$data["match_keys"]["ln"]=hash("sha256",$last_name);
$data["match_keys"]["ln"]=hash("sha256",$last_name);
$data["match_keys"]["ct"]=hash("sha256",$suburb);
$data["match_keys"]["zip"]=hash("sha256",$postcode);
$data["match_keys"]["country"]=hash("sha256","Australia");
$data["event_time"] = strtotime($order_date);
$data["event_name"] = "Purchase";
$data["currency"] = "AUD";
$data["value"] = $order_total;
$data['order_id']=$order_id;
$access_token = '<access_token_0>';
// PURCHASE DATA
$data_json = json_encode(array($data));
$fields = array();
$fields['access_token'] = $access_token;
$fields['upload_tag'] = uniqid() // You should set a tag here (feel free to adjust)
$fields['data'] = $data_json;
$ch = curl_init();
curl_setopt_array($ch, array(
// Replace with your offline_event_set_id
CURLOPT_URL => "https://graph.facebook.com/v2.12/1696501357346693/events",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => http_build_query($fields),
CURLOPT_HTTPHEADER => array(
"cache-control: no-cache",
"content-type: multipart/form-data",
"Accept: application/json" ),
));
$result = curl_exec($ch);
echo "\nResult encode";
echo ($result);
if (curl_errno($ch)) {
echo 'Error:' . curl_error($ch);
}
curl_close ($ch);
答案 0 :(得分:1)
同一件事刚刚开始在这里发生。完全一样的问题。我不得不玩了几个小时...但是要使其正常工作,我将
注释掉了。//"content-type: multipart/form-data",
它开始为我工作。请告诉我们是否还能解决您的问题。
答案 1 :(得分:1)
这只是意味着数据不是按照文档发送的。我遇到了这个问题,因为在我的情况下,“contents”参数传递的是空字符串,而不是文档说“contents”参数应该包含至少 2 个参数,即, 数量和id。
浏览文档,您可以将您的值格式与文档进行比较。