0

Я настроил успешно с webhook, чтобы указать на мой обратного вызова URL и получает следующий пример данных:Facebook API: Не удается получить Facebook Свинец Объявления

Array 
(
[object] => page 
[entry] => Array 
    (
     [0] => Array 
      (
       [id] => 297269987142139 
       [time] => 1454876106 
       [changes] => Array 
        (
         [0] => Array 
          (
           [field] => leadgen 
           [value] => Array 
            (
             [ad_id] => 410908499427 
             [adgroup_id] => 238113717077 
             [created_time] => 1454847306 
             [form_id] => 577581087825 
             [leadgen_id] => 441393665441 
             [page_id] => 297269987142139 
            ) 
          ) 
        ) 
      ) 
    ) 
) 

Но если я пытаюсь получить данные, связанные с leadgen_id как explained by facebook, он не работает:

use FacebookAds\Object\Lead; 

$form = new Lead('441393665441'); 
$form->read(); 

Я получаю следующее сообщение об ошибке: Unsupported get request. Please read the Graph API documentation at https://developers.facebook.com/docs/graph-api

Я пытался все, но не может понять, почему это не работает.

Я посылаю щупы так:

curl \ 
    -F "object_id=<PAGE_ID>" \ 
    -F "object=page" \ 
    -F "field=leadgen" \ 
    -F "access_token=<ACCESS_TOKEN>" \ 
    -F 'custom_fields={"page_id": <PAGE_ID>}' \ 
    "https://graph.facebook.com/<API_VERSION>/<APP_ID>/subscriptions_sample" 
+0

, если это документально и не работает, не стесняйтесь сообщить об ошибке –

ответ

7

я изо всех сил, чтобы получить эту работу, и, кажется, что никто не сделал никакого копирования и вставки решение, которое, казалось, на работу.

Эта функция PHP работает для меня:

function getLead($leadgen_id,$user_access_token) { 
    //fetch lead info from FB API 
    $graph_url= 'https://graph.facebook.com/v2.5/'.$leadgen_id."?access_token=".$user_access_token; 
    $ch = curl_init(); 
    curl_setopt($ch, CURLOPT_URL, $graph_url); 
    curl_setopt($ch, CURLOPT_HEADER, 0); 
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0); 
    $output = curl_exec($ch); 
    curl_close($ch); 

    //work with the lead data 
    $leaddata = json_decode($output); 
    $lead = []; 
    for($i=0;$i<count($leaddata->field_data);$i++) { 
     $lead[$leaddata->field_data[$i]->name]=$leaddata->field_data[$i]->values[0]; 
    } 
    return $lead; 
} 

Вы можете использовать функцию с этим примером кода:

//Take input from Facebook webhook request 
$input = json_decode(file_get_contents('php://input'),true); 
$leadgen_id = $input["entry"][0]["changes"][0]["value"]["leadgen_id"]; 

//Token - you must generate this in the FB API Explorer - tip: exchange it to a long-lived (valid 60 days) token 
$user_access_token = 'TOKENID'; 

//Get the lead info 
$lead = getLead($leadgen_id,$user_access_token);//get lead info 

С этого момента вы можете, например, отправить в реальном времени почты, получая атрибуты и значения в свинце:

//Create an email with the lead info 
$mail="<html><body><h2>New lead</h2><blockquote>"; 
$mail.="Lead id: ".$leadgen_id."<br>"; 
foreach($lead as $attr=>$val) { 
    $mail.=$attr.": ".$val."<br>"; 
} 
$mail.="</blockquote></body></html>"; 

Надеюсь, это поможет. Обратите внимание, что строка subscriptions_sample не содержит полей. Вы можете проверить свой собственный профиль на Facebook, чтобы получить реальные данные.

+0

спасибо за ваш ответ, я проверю это позже – Snowball

+0

Какие разрешения необходимы для токена доступа? –

+0

@john sandy спасибо. его работа мне удалось каким-то образом получить токен, но я не могу вспомнить, какие шаги я сделал для его создания ... также мне нужно сгенерировать 60-дневный действительный токен и, похоже, найти способ, может кто-то может помочь с этой темой? –

0

Благодаря @John Sandy Это помогло :-)

Однако если кто-то и борется, пожалуйста, используйте ниже URL в самом браузере.

https://graph.facebook.com/v2.5/leadgen_id?access_token=xxxxxxxx

Примечание: вставьте leadgen_id и маркер доступ

Надеется, что это поможет

благодаря Pranav

0

Я сделал это с помощью JavascriptSDK и ReactJS. Вам просто нужен токен доступа к странице, чтобы извлечь значения из списка. Убедитесь, что вы уже подписали страницу с вашим приложением. Вам нужно сделать GET вызов:

https://graph.facebook.com/v2.11/<leadgen_id>?access_token=<page_access_token> 

Для получения дополнительной информации, пожалуйста, проверьте ссылку: http://tanmayverma.com/reactjs/storing-facebook-lead-data-in-our-database-in-real-time-using-reactjs-meteorjs-and-fbs-javascript-sdk/