Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/facebook/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何获得;“用户”;使用Facebook C#SDK在Web API中访问令牌?_C#_Facebook_Facebook Graph Api_Asp.net Web Api - Fatal编程技术网

如何获得;“用户”;使用Facebook C#SDK在Web API中访问令牌?

如何获得;“用户”;使用Facebook C#SDK在Web API中访问令牌?,c#,facebook,facebook-graph-api,asp.net-web-api,C#,Facebook,Facebook Graph Api,Asp.net Web Api,我正在开发一个web API来处理来自Facebook的实时更新(潜在客户信息),以便与我的CRM集成。 在WEB API POST请求中,我能够捕获leadID,但当我通过调用FB.get(leadID)获取leadinfo时,问题就出现了。为了发出Graph API GET请求(获取潜在客户信息),我需要一个用户访问令牌,这就是我一直在努力的地方。我在网上查了好几篇帖子,但都没有找到解决问题的办法 在我的示例实现中,GetLoginUrl(parameters)返回一个uri,当我在浏览器中

我正在开发一个web API来处理来自Facebook的实时更新(潜在客户信息),以便与我的CRM集成。 在WEB API POST请求中,我能够捕获leadID,但当我通过调用
FB.get(leadID)
获取leadinfo时,问题就出现了。为了发出Graph API GET请求(获取潜在客户信息),我需要一个用户访问令牌,这就是我一直在努力的地方。我在网上查了好几篇帖子,但都没有找到解决问题的办法

在我的示例实现中,
GetLoginUrl(parameters)
返回一个uri,当我在浏览器中请求uri时,我看到在重定向的uri中生成了访问令牌。但是如何通过编程实现呢?我试过以下方法

字符串FBAccessUrl=“”; var accessTokenRequest=System.Net.HttpWebRequest.Create(FBAccessUrl); HttpWebResponse=(HttpWebResponse)accessTokenRequest.GetResponse()

但是我得到了这个响应,这不是我想要的

有人可以帮助我如何在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 

}