C# 必须使用获取(OAutheException-#2500)活动访问令牌来查询有关当前用户的信息

C# 必须使用获取(OAutheException-#2500)活动访问令牌来查询有关当前用户的信息,c#,facebook,oauth-2.0,facebook-c#-sdk,access-token,C#,Facebook,Oauth 2.0,Facebook C# Sdk,Access Token,我得到以下错误: (OAutheException-#2500)必须使用活动访问令牌来查询有关当前用户的信息 在C#中使用Facebook SDK的V6 下面是我正在使用的代码,请注意,我省略了我的AppID和appsecret: public partial class Form1 : Form { private string accessToken; private void getAccessTokenButton_Click(object sender, EventA

我得到以下错误:

(OAutheException-#2500)必须使用活动访问令牌来查询有关当前用户的信息

在C#中使用Facebook SDK的V6

下面是我正在使用的代码,请注意,我省略了我的AppID和appsecret:

public partial class Form1 : Form
{
    private string accessToken;

    private void getAccessTokenButton_Click(object sender, EventArgs e)
    {
        FacebookClient client = new FacebookClient();
        dynamic result = client.Get("oauth/access_token", new
        {
            client_id = "OMITTED",
            client_secret = "OMITTED",
            grant_type = "client_credentials"
        });
        accessToken = result.access_token;
    }

    private void retrieveFirstNameButton_Click(object sender, EventArgs e)
    {
        FacebookClient client = new FacebookClient();
        client.AccessToken = accessToken;
        dynamic result = client.Get("me");
        MessageBox.Show(result.first_name);
    }
}

啊!!解决了问题。您正在使用应用程序访问令牌获取有关当前登录用户的信息,这是不允许的。
您必须获取用户访问令牌才能访问有关当前登录用户的详细信息。其他选项是,您可以传递用户id而不是“我”,以获取已授予您所需权限的用户的信息

dynamic result = client.Get("User_ID");
string name = result.first_name;
我在代码中检测到的另一个问题是,您使用错误的方法使用现有的访问令牌创建新的“FacebookClient”。我认为正确的方法是在构造函数中传递accessToken

FacebookClient client = new FacebookClient("Access_Token");
这是一个完整的教程:

可能重复的