2017-08-09 76 views
0

我已经成功连接了Facebook Webhook和我的asp.net应用程序。 现在,当我尝试订阅Lead ad时,webhook不会触发任何回复我的URL的请求。Facebook的API领导广告webhook铅检索在asp.net应用程序?

Facebook提供的获取数据的代码如下。

注意此代码是在PHP需要在C#

<?php 

$challenge = $_REQUEST['hub_challenge']; 
$verify_token = $_REQUEST['hub_verify_token']; 

if ($verify_token === 'abc123xyz') { 
echo $challenge; 
} 

$input = json_decode(file_get_contents('php:://input'), true); 
error_log(print_r($input, true)) 

转换遗憾的是我没能最后两行转换成C#。 我在下面提到的链接。 https://developers.facebook.com/docs/marketing-api/guides/lead-ads/quickstart/webhooks-integration

对此的任何帮助非常感谢。谢谢。

+0

_“不幸的是,我没能转换在C#中的最后两行。“ - - 那么我建议你做一些研究来找到你t_如何在c#中执行此操作... https://www.google.com/search?q=c%23+how+to+read+JSON+POST – CBroe

回答

0

创建下面的类

public class JsonData 
{ 
    [JsonProperty("entry")] 
    public List<Entry> Entry { get; set; } 

    [JsonProperty("object")] 
    public string Object { get; set; } 
} 
public class Entry 
{ 
    [JsonProperty("changes")] 
    public List<Change> Changes { get; set; } 

    [JsonProperty("id")] 
    public string Id { get; set; } 

    [JsonProperty("time")] 
    public int Time { get; set; } 
} 

public class Change 
{ 
    [JsonProperty("field")] 
    public string Field { get; set; } 

    [JsonProperty("value")] 
    public Value Value { get; set; } 
} 

public class Value 
{ 
    [JsonProperty("ad_id")] 
    public string AdId { get; set; } 

    [JsonProperty("form_id")] 
    public string FormId { get; set; } 

    [JsonProperty("leadgen_id")] 
    public string LeadGenId { get; set; } 

    [JsonProperty("created_time")] 
    public int CreatedTime { get; set; } 

    [JsonProperty("page_id")] 
    public string PageId { get; set; } 

    [JsonProperty("adgroup_id")] 
    public string AdGroupId { get; set; } 
} 

public class LeadData 
{ 
    [JsonProperty("created_time")] 
    public string CreatedTime { get; set; } 

    [JsonProperty("id")] 
    public string Id { get; set; } 

    [JsonProperty("field_data")] 
    public List<FieldData> FieldData { get; set; } 
} 

public class FieldData 
{ 
    [JsonProperty("name")] 
    public string Name { get; set; } 

    [JsonProperty("values")] 
    public List<string> Values { get; set; } 
} 

public class LeadFormData 
{ 
    [JsonProperty("id")] 
    public string Id { get; set; } 

    [JsonProperty("leadgen_export_csv_url")] 
    public string CsvExportUrl { get; set; } 

    [JsonProperty("locale")] 
    public string Locale { get; set; } 

    [JsonProperty("name")] 
    public string Name { get; set; } 

    [JsonProperty("status")] 
    public string Status { get; set; } 
} 

在岗行动更多细节做到这一点

public void Post([FromBody] JsonData data) 
    { 
     try 
     { 
      var entry = data.Entry.FirstOrDefault(); 
      //Get change 
      var change = entry?.Changes.FirstOrDefault(); 
      if (change == null) return; 

      //Get lead Id 
      var leadId = change.Value.LeadGenId; 

      //Lead Id is used for further processing 
     } 
     catch (Exception ex) 
     { 
      Trace.TraceError($"Error >> {ex.Message} >> StackTrace {ex.StackTrace}"); 
     } 
    } 

参考Facebook ASP.NET Webhook

相关问题