我想做的是在webhook ASP.net核心API中从我的Facebook页面中检索我的Facebook线索,获取线索详细信息并将其保存在mongoDB数据库中。
由于令牌的原因,我无法在API中获取潜在客户的详细信息。
然后我在Facebook开发人员文档中看到了:获取常规用户令牌。 b。将其转换为长期令牌c。使用寿命长的用户的访问令牌,请请求页面令牌[..]此寿命长的页面令牌没有到期日期;请使用有效的令牌。您可以在简单的RTU集成中对其进行硬编码以获取销售线索数据。
问题是我得到了页面令牌,就像他们在其文档中显示的那样,但是它在我获得它的一小时后过期了。但是他们说这里还没有到期。所以我不知道该怎么办。
我所做的是从Web上获取令牌,并将其保存在数据库中,当潜在客户出现时,在我的数据库中搜索该令牌以请求获取页面的潜在客户详细信息。
我尝试使用应用程序令牌,但出现错误,我需要用户令牌,但从API获取用户令牌似乎不正确。
如果我错过任何事情,请告诉我。真的需要您的帮助!谢谢!
我有Angular Web和ASP.net核心API。我尝试了一个应用令牌,并从网络上获得了一个页面令牌。
网络:
///Login
FB.login(response => {
if (response.authResponse) {
this.userId = response.authResponse.userID;
FB.api('me/accounts', responsePages => {
this.ngzone.run(() => {
this.pages = responsePages.data.map(elem => {
let page = new FacebookPage();
page.access_token = elem.access_token;
page.category = elem.category;
page.id = elem.id;
page.name = elem.name;
FB.api(page.id + "/subscribed_apps?access_token=" + page.access_token, res => {
if (res.data.length > 0 && res.data[0].name === facebookAPPName && res.data[0].id === facebookAPPId)
page.connected = true;
else page.connected = false;
})
return page;
});
});
})
}
else {
console.log('User login failed');
}
}, { scope: ['manage_pages', 'leads_retrieval'] });
///Link Page
FB.api(this.userId+"/accounts", res => {
let accessToken = res.data.filter(elem => elem.name === page.name[0].access_token;
FB.api('/' + page.id + '/subscribed_apps',
'post',
{ access_token: page.access_token, subscribed_fields: ['leadgen'] },
(response) => {
console.log('Successfuly subscribed ' + JSON.stringify(response))
page.connected = true;
page.access_token = accessToken;
this.facebookService.link(page).subscribe(()=>{
this.spinner.hide();
},
err => { console.log(err); this.spinner.hide();})
})
})
API:
[HttpPost]
public IActionResult Post([FromBody]FacebookLead data)
{
var entry = data.entry.FirstOrDefault();
var change = entry?.changes.FirstOrDefault();
var leadId = change.value.leadgen_id;
var client = new HttpClient();
var page = this.facebookService.Get(change.value.page_id);
var request = client.GetAsync("https://graph.facebook.com/v3.3/" + leadId + "?access_token=" + page.access_token);
request.Wait();
var res = request.Result.Content.ReadAsStringAsync();
res.Wait();
var result = res.Result;
return Ok();
}
预期输出是线索的详细信息,而API中的令牌未过期。但由于令牌已过期或应用令牌无效,我收到了错误消息