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

时间:2013-02-11 04:39:49

标签: c# facebook oauth-2.0 facebook-c#-sdk access-token

我收到以下错误:

  

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

在C#中使用Facebook SDK的V6。

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

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);
    }
}

1 个答案:

答案 0 :(得分:2)

啊!找出问题所在。您正在使用应用访问令牌来获取有关当前登录用户的信息,这是不允许的。
您需要获取用户访问令牌才能访问有关当前登录用户的详细信息。 其他选项是您可以传递用户ID而不是“我”来获取有关向您提供所需权限的用户的信息。

dynamic result = client.Get("User_ID");
string name = result.first_name;

我在您的代码中检测到的另一个问题是您使用错误的方法使用现有的访问令牌创建新的“FacebookClient”。我想的正确方法是在构造函数中传递accessToken。

FacebookClient client = new FacebookClient("Access_Token");

这是一个完整的教程:Working with Facebook C# SDK