【问题标题】:Facebook Ad Leads retrieval asp.netFacebook 广告线索检索 asp.net
【发布时间】:2016-10-03 16:23:17
【问题描述】:

有没有办法可以从 asp.net 中的 Lead_ID 读取广告线索数据?我看到有 PHP 的例子,但没有 C# 的 SDK。不幸的是我必须使用 Asp.net 并且不能使用任何其他技术

非常感谢任何建议

【问题讨论】:

    标签: asp.net-mvc facebook lead


    【解决方案1】:

    您可以使用 facebook sdk c# 和

    var fb = new FacebookClient
                {
                    AccessToken ="token"
                };
                var json = fb.Get("page_id or ad_id/leadgen_forms");
                var forms = JsonConvert.DeserializeObject<FormsLeads>(json.ToString());
                foreach (var form in forms.data)
                {
                    var jsonre = fb.Get(form.id + "/leads");
                    var leads = JsonConvert.DeserializeObject<Leads>(jsonre.ToString());
                    while (leads.paging != null)
                    {
                        foreach (var lead in leads.data)
                        {
                            var leadnovo = new Models.Lead();
                            leadnovo.CamposExtras.Add(new CampoExtra { Nome = "idfacebook", Valor = lead.id });
                            leadnovo.DataCadastro = lead.created_time;
    
                            foreach (var t in lead.field_data)
                            {
                                if (t.name == "full_name")
                                {
                                    leadnovo.Nome = t.values.FirstOrDefault();
                                }
                                else
                                    if (t.name == "email")
                                    {
                                        leadnovo.Email = t.values.FirstOrDefault();
                                    }
                                    else
                                        if (t.name == "phone_number")
                                        {
                                            leadnovo.Celular = t.values.FirstOrDefault();
                                        }
                                        else
                                        {
                                            leadnovo.CamposExtras.Add(new CampoExtra()
                                            {
                                                Nome = t.name,
                                                Valor = t.values.FirstOrDefault()
    
                                            });
                                        }
                            }
                            if (db.Leads.FirstOrDefault(c => c.Email == leadnovo.Email) == null)
                            {
                                db.Leads.Add(leadnovo);
                                db.SaveChanges();
                            }
                        }
                        if (leads.paging != null)
                        {
                            jsonre = fb.Get(form.id + "/leads?after=" + leads.paging.cursors.after);
                            leads = JsonConvert.DeserializeObject<Leads>(jsonre.ToString());
                        }
                    }
                }
            }
    

    反序列化类

     public class Cursors
    {
        public string before { get; set; }
        public string after { get; set; }
    } 
    public class Field_Data
        {
            public string name { get; set; }
            public string[] values { get; set; }
        }
    
    
     public class FormsLeads
        {
            public Formulario[] data { get; set; }
            public Paging paging { get; set; }
        }
     public class Formulario
        {
            public string id { get; set; }
            public string leadgen_export_csv_url { get; set; }
            public string locale { get; set; }
            public string name { get; set; }
            public string status { get; set; }
        }
     public class Lead
        {
            public DateTime created_time { get; set; }
            public string id { get; set; }
            public Field_Data[] field_data { get; set; }
        }
    public class Leads
        {
            public Lead[] data { get; set; }
            public Paging paging { get; set; }
        }
    public class Paging
        {
            public Cursors cursors { get; set; }
        }
    

    【讨论】:

    • 我尝试按照上面的代码实现,但是得到了 Models & CampoExtra 的编译时错误。你能告诉我这些类是从哪个库中引用的吗?
    • Campos Extras 和 Models 是您保存数据的类!
    猜你喜欢
    • 1970-01-01
    • 2022-11-08
    • 1970-01-01
    • 2016-01-28
    • 1970-01-01
    • 1970-01-01
    • 2019-04-18
    • 2018-10-07
    • 1970-01-01
    相关资源
    最近更新 更多