Facebook marketing api 将Facebook Lead广告整合到另一个平台

Facebook marketing api 将Facebook Lead广告整合到另一个平台,facebook-marketing-api,Facebook Marketing Api,我正在开发一个web应用程序,它允许营销人员发布活动并产生潜在客户。我想将Facebook leads广告平台集成到我的web应用程序中,这样我就可以让营销人员在这两个平台上发布广告。为此,我需要从developers.Facebook.com获得一些资源或开发者API。我在那里进行了广泛的搜索,但没有成功。有人能给我指一下关于Facebook lead广告的特定开发者指南吗?你可以在你的应用程序中创建一个Webhook,当一个新的lead出现时触发 我采取的步骤一直在进行 只需制作一个Face

我正在开发一个web应用程序,它允许营销人员发布活动并产生潜在客户。我想将Facebook leads广告平台集成到我的web应用程序中,这样我就可以让营销人员在这两个平台上发布广告。为此,我需要从developers.Facebook.com获得一些资源或开发者API。我在那里进行了广泛的搜索,但没有成功。有人能给我指一下关于Facebook lead广告的特定开发者指南吗?

你可以在你的应用程序中创建一个Webhook,当一个新的lead出现时触发

我采取的步骤一直在进行

只需制作一个Facebook Webhook可以使用的API端点

GET

然后,当你的Webhook处于活动状态时(这就是GET的目的),你可以在Facebook发送给你的端点的帖子中收到Lead信息

提供上下文的一些代码(使用Express的Node.js):

GET端点

// Confirm token that was set in the Webhook setup 
exports.index = function (req, res) {
  console.log(req.query);
  var challenge = req.query['hub.challenge'],
    verify_token = req.query['hub.verify_token'];
  if (verify_token === 'YOUR_TOKEN') {
    res.send(challenge);
  }
};
'use strict';
var _ = require('lodash');
var fb = require('fb'); 
fb.setAccessToken('acces_token');
var getResponseAPI = require('getresponse-nodejs-api')('API_KEY');

exports.webhook = function(req, res) {
  var leadName, leadEmail;
  // Lead Info 
  var fbChanges = req.body.entry[0].changes;
  var getLeadFromFacebook = new Promise(function(resolve, reject) {
    if (fbChanges !== undefined) {
      fbChanges.forEach(function(item, index) {
        //You need to retrieve the User info from the changes because Facebook Just gives you UID
        var getUserInfoFromGraph = new Promise(
          function(resolve, reject) {
            var leadId = item.value.leadgen_id;
            fb.api(leadId.toString(), function(res) {
              if (!res || res.error) {
                console.log(!res ? 'error occurred' : res.error);
                reject(res.error);
              }
              resolve(res);
            });

          }
        );
        getUserInfoFromGraph.then(function(userInfo) {
          //To give you a picture the content of the data
          console.log(JSON.stringify(userInfo.field_data));
          userInfo.field_data.forEach(function(item) {
            if (item.name === 'full_name') {
              leadName = item.values[0];
            } else if (item.name === 'email') {
              leadEmail = item.values[0];
            }
          });
        }).then(function(leadInfo) {
          //Work with info here I'm using getResponse :)
          getResponseAPI.addContact('CAMPAIGN_ID', leadName, leadEmail, null, 0, {}, function(response) {
            if (response.data.error) {
              console.log('Error' + response.data.error.message);
            }
            console.log(JSON.stringify(response));
          });

        });
      });
    } else {
      res.status(400);
    }
  });
};
后端点

// Confirm token that was set in the Webhook setup 
exports.index = function (req, res) {
  console.log(req.query);
  var challenge = req.query['hub.challenge'],
    verify_token = req.query['hub.verify_token'];
  if (verify_token === 'YOUR_TOKEN') {
    res.send(challenge);
  }
};
'use strict';
var _ = require('lodash');
var fb = require('fb'); 
fb.setAccessToken('acces_token');
var getResponseAPI = require('getresponse-nodejs-api')('API_KEY');

exports.webhook = function(req, res) {
  var leadName, leadEmail;
  // Lead Info 
  var fbChanges = req.body.entry[0].changes;
  var getLeadFromFacebook = new Promise(function(resolve, reject) {
    if (fbChanges !== undefined) {
      fbChanges.forEach(function(item, index) {
        //You need to retrieve the User info from the changes because Facebook Just gives you UID
        var getUserInfoFromGraph = new Promise(
          function(resolve, reject) {
            var leadId = item.value.leadgen_id;
            fb.api(leadId.toString(), function(res) {
              if (!res || res.error) {
                console.log(!res ? 'error occurred' : res.error);
                reject(res.error);
              }
              resolve(res);
            });

          }
        );
        getUserInfoFromGraph.then(function(userInfo) {
          //To give you a picture the content of the data
          console.log(JSON.stringify(userInfo.field_data));
          userInfo.field_data.forEach(function(item) {
            if (item.name === 'full_name') {
              leadName = item.values[0];
            } else if (item.name === 'email') {
              leadEmail = item.values[0];
            }
          });
        }).then(function(leadInfo) {
          //Work with info here I'm using getResponse :)
          getResponseAPI.addContact('CAMPAIGN_ID', leadName, leadEmail, null, 0, {}, function(response) {
            if (response.data.error) {
              console.log('Error' + response.data.error.message);
            }
            console.log(JSON.stringify(response));
          });

        });
      });
    } else {
      res.status(400);
    }
  });
};