0

The reported error occurs while i am trying to login into the facebook(web browser in winforms) to get the user access token我使用下面的代码将文本框内容发布到我的Facebook墙上,它的工作正常。使用c#winform在Facebook粉丝页发帖

private void btn_Post_Click(object sender, EventArgs e) 
     { 
      string appID, appSecret, userId; 
      appID = ConfigurationManager.AppSettings["AppID"].ToString(); 
      appSecret=ConfigurationManager.AppSettings["AppSecret"].ToString(); 
      userId = ConfigurationManager.AppSettings["UserID"].ToString(); 
      var fb = new FacebookClient(); 
      dynamic result = fb.Get("oauth/access_token", new 
      { 
       client_id = appID, 
       client_secret = appSecret,      
       grant_type = "client_credentials" 
      }); 
      fb.AccessToken = result.access_token; 
      PostToWall(txt_status.Text, userId, fb.AccessToken); 
     } 

     private static void PostToWall(string message, string userId, string wallAccessToken) 
     { 
      try 
      { 
       var fb = new FacebookClient(wallAccessToken); 
       string url = string.Format("{0}/{1}", userId, "feed"); 
       var argList = new Dictionary<string, object>(); 
       argList["message"] = message; 
       fb.Post(url, argList); 
       MessageBox.Show("Posted"); 
      } 
      catch (Exception ex) 
      { 
       MessageBox.Show("Error:" + ex.Message); 
      } 
     } 

然后我创建了Facebook页面并尝试发布它。为此我启用了管理页面权限,但我无法获得页面访问令牌。 我如何能够通过C#代码动态地获取Facebook页面访问令牌来发布它。

回答

0

有两种API端点得到一个网页令牌:

获取与页令牌

/me/accounts?fields=name,access_token 

所有页面的列表获取页面凭证特定页面:

/page-id?fields=access_token 

如果您想使用令牌作为页面发布,请确保您使用manage_pagespublish_pages授权。

+0

当我试图登录到Facebook(在Windows窗体中的Web浏览器)获取用户访问令牌时,报告的错误发生。如何解决这个问题。 – Karthik

+0

改变了整个问题......您需要实施正确的登录并确保用户实际上已获得授权。 – luschn

+0

虽然点击Facebook上的帖子我已经尝试显示Facebook登录页面输入凭据,但它报告错误..字符串OAuthURL = @“https://www.facebook.com/dialog/oauth?client_id= [ app_Id]&redirect_uri = https://www.facebook.com/connect/login_success.html &response_type = token&scope = user_groups,user_status,read_friendlists,manage_friendlists,user_photos&type = user_agent&display = popup“; web_facebook.Navigate(OAuthURL); – Karthik