3

我收到以下错误:

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

1 回答 1

2

啊! 想通了问题。您正在使用应用访问令牌来获取有关当前登录用户的信息,这是不允许的。
您必须获取用户访问令牌才能访问有关当前登录用户的详细信息。另一个选项是您可以传递用户 ID而不是“我”来获取有关授予您所需权限的用户的信息。

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

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

FacebookClient client = new FacebookClient("Access_Token");

这是一个完整的教程:使用 Facebook C# SDK

于 2013-02-11T07:39:47.350 回答