2013-02-11 48 views
3

我收到以下錯誤信息:獲取(OAuthException - #2500)有效的訪問令牌必須用於查詢當前用戶

(OAuthException - #2500) An active access token must be used to query information about the current user.

在C#中使用Facebook SDK的V6。

下面是代碼,我使用了,請注意,我遺漏了我的AppID和App揭祕:

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

可能重複(http://facebook.stackoverflow.com/questions/9351241/need-help-on-oauthexception-代碼2500) – Igy 2013-02-11 05:12:52

回答

2

啊!找出問題所在。您正在使用應用訪問令牌來獲取有關當前登錄用戶的信息,這是不允許的。
您必須獲取用戶訪問令牌才能訪問有關當前登錄用戶的詳細信息。 其他選項是,您可以傳遞用戶標識而不是「我」來獲取已授予您所需權限的用戶信息。

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

我在你的代碼中檢測到的另一個問題是您使用了錯誤的方法來創建一個新的`FacebookClient」與現有的訪問令牌。我想的正確方法是在構造函數中傳遞accessToken。

FacebookClient client = new FacebookClient("Access_Token"); 

這裏有一個完整的教程:Working with Facebook C# SDK

的[需要幫助的OAuthException代碼2500]
+0

這完美的作品,謝謝! – 2013-02-12 09:21:18

+0

如果你完成了,接受這個答案! – ThePCWizard 2013-02-12 09:46:46

相關問題