我正在开发一个Web API来处理来自Facebook的实时更新(Lead信息)以与我的CRM集成。
在WEB API POST请求中,我能够捕获leadID,但是当我通过调用FB.Get(LeadID)
获取leadinfo时会出现问题。要制作一个Graph API GET请求(对于潜在客户信息),我需要有一个用户访问令牌,这是我一直在努力的地方。我在线查了几个帖子,但没有解决我的问题。
在我的示例实现中,GetLoginUrl(parameters)
返回一个uri,当我在浏览器中请求uri时,我看到访问令牌在重定向的Uri中生成。但是如何以编程方式执行此操作?我试过以下
string FBAccessUrl =" https://graph.facebook.com/oauth/authorize?client_id=XXXXXXXXXXXX&response_type=token&redirect_uri=https://www.facebook.com/connect/login_success.html&#34 ;; var accessTokenRequest = System.Net.HttpWebRequest.Create(FBAccessUrl); HttpWebResponse response =(HttpWebResponse)accessTokenRequest.GetResponse();
然后我得到这个ResponseUri = {https://www.facebook.com/unsupportedbrowser}这不是我想要的。
有人可以帮助我了解如何使用Web API中的C#生成用户访问令牌(没有Facebook登录对话框)
[HttpPost]
[ActionName("Complex")]
public void PostComplex(RootObject root)
{
FacebookClient fb = new FacebookClient();
// Get leadID from the inital HTTP POST request
long leadgen_id = root.entry[0].changes[0].value.leadgen_id;
string leadID = leadgen_id.ToString();
// to get user access token
dynamic parameters = new ExpandoObject();
parameters.client_id = "XXXXXXXXXXXXXXX";
parameters.redirect_uri = "https://www.facebook.com/connect/login_success.html";
parameters.response_type = "token";
// generate the login url
Uri uri = fb.GetLoginUrl(parameters);
// reuest the uri in browser and uri2 is the redirected uri
Uri uri2 = "****************"
string accesstoken = "";
FacebookOAuthResult oauthResult;
if (fb.TryParseOAuthCallbackUrl(uri, out oauthResult))
{
if (oauthResult.IsSuccess)
{
accesstoken = oauthResult.AccessToken;
}
else
{
var errorDescription = oauthResult.ErrorDescription;
var errorReason = oauthResult.ErrorReason;
}
}
fb.AccessToken = accesstoken;
string me = fb.Get(leadID).ToString();
// Then fetch required lead information
}