2012-05-12 166 views
2

使用Facebook C#SDK時,當我嘗試發佈狀態更新時出現以下錯誤: OAuthException:(#200)用戶尚未授權應用程序執行此操作OAuthException:(#200)用戶未授權應用程序執行此操作

我只在某些用戶遇到此錯誤。對於其他情況,狀態正在更新。應用程序正在成功訪問所有用戶。

這是全碼:

public partial class Authorize : Form 
    { 
     public Authorize() 
     { 
      InitializeComponent(); 

     } 

     public string ApplicationId 
     { 
      get 
      { 
       return ConfigurationManager.AppSettings["ApplicationId"]; 
      } 
     } 

     public string ExtendedPermissions 
     { 
      get 
      { 
       return ConfigurationManager.AppSettings["ExtendedPermissions"]; 
      } 
     } 

     public string AppSecret 
     { 
      get 
      { 
       return ConfigurationManager.AppSettings["ApplicationSecret"]; 
      } 
     } 

     public string AccessToken { get; set; } 

     private void LoadAuthorize(object sender, EventArgs e) 
     { 
      var destinationURL = String.Format(
       @"https://www.facebook.com/dialog/oauth?client_id={0}&scope={1}&redirect_uri=http://www.facebook.com/connect/login_success.html&response_type=token", 
       this.ApplicationId, 
       this.ExtendedPermissions); 
      webBrowser.Navigated += WebBrowserNavigated; 
      webBrowser.Navigate(destinationURL); 
     } 

     private void WebBrowserNavigated(object sender, WebBrowserNavigatedEventArgs e) 
     { 
      // get token 
      var url = e.Url.Fragment; 
      if (url.Contains("access_token") && url.Contains("#")) 
      { 
       this.Hide(); 
       url = (new Regex("#")).Replace(url, "?", 1); 
       this.AccessToken = System.Web.HttpUtility.ParseQueryString(url).Get("access_token"); 
       //MessageBox.Show(facebookCore.AccessToken); 
       try 
       { 
        //var facebooking = new FacebookingTest(facebookCore.AccessToken); 
        //facebooking.UpdateStatus(); 
        var fb = new FacebookClient(this.AccessToken); 
        dynamic result = fb.Post("me/feed", new { message = "Hi..Test33" }); 
        var newPostId = result.id; 
       } 
       catch (Exception exception) 
       { 
        Console.Write(exception); 
       } 
      } 

     } 
    } 
+0

試過代碼由Prabhir在http://blog.prabir.me/post/Facebook-CSharp-SDK-Writing-your-First-Facebook-Application-v6.aspx ..同名問題 – harry

+0

您確定訪問令牌具有'publish_stream'或'publish_actions'權限嗎?前者是用戶可以拒絕和/或撤消的可選許可 – Igy

回答

2

嘗試打開該文件App.Config中,並修改

<appsettings> 

節的最後一行如下:

<add key="ExtendedPermissions" value="offline_access,publish_stream,publish_actions" /> 
+1

打開App.Config並修改部分的最後一行,如下所示:

相關問題