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

ああ!問題を理解しました。アプリ アクセス トークンを使用して、現在ログインしているユーザーに関する情報を取得していますが、これは許可されていません。
現在ログインしているユーザーの詳細にアクセスするには、ユーザー アクセス トークンを取得する必要があります。もう1 つのオプションは、「me」の代わりにユーザー ID を渡して、必要な許可を与えたユーザーに関する情報を取得することです。

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

あなたのコードで私が発見したもう 1 つの問題は、既存のアクセス トークンを使用して新しい「FacebookClient」を作成するために間違った方法を使用していることです。私が思う正しい方法は、コンストラクターで accessToken を渡すことです。

FacebookClient client = new FacebookClient("Access_Token");

ここに完全なチュートリアルがあります: Facebook C# SDKの操作

于 2013-02-11T07:39:47.350 に答える