2016-04-30 3 views
0

Ich habe diesen Beitrag how to post to facebook page wall from .NET referiert, aber es wird auf der Facebook-Seite funktionieren, um als Besucherbeitrag zu posten. und ich möchte von Seitenzeitachse nicht auf Besucherbeitrag und ich bin Admin dieser Seite und App. bitte geben Sie eine Lösung dafür.Wie posten Sie direkt auf Facebook Seite mit C# nicht auf Besucher Post?

hier in meinem Code

using System; 
using System.Collections.Generic; 
using System.IO; 
using System.Linq; 
using System.Net; 
using System.Web; 
using System.Web.UI; 
using System.Web.UI.WebControls; 
using Facebook; 
using System.Dynamic; 

public partial class facebook : System.Web.UI.Page 
{ 
    protected void Page_Load(object sender, EventArgs e) 
    { 
     authontication(); 
    } 
    private void authontication() 
    { 
     string app_id = "**********************"; 
     string app_secret = "###################################"; 


     string scope = "publish_actions,manage_pages"; 

     if (Request["code"] == null) 
     { 
      Response.Redirect(string.Format(
       "https://graph.facebook.com/oauth/authorize?client_id={0}&redirect_uri={1}&scope={2}", 
       app_id, Request.Url.AbsoluteUri, scope)); 
     } 
     else 
     { 
      Dictionary<string, string> tokens = new Dictionary<string, string>(); 

      string url = string.Format("https://graph.facebook.com/oauth/access_token?client_id={0}&redirect_uri={1}&scope={2}&code={3}&client_secret={4}", 
      app_id, Request.Url.AbsoluteUri, scope, Request["code"].ToString(), app_secret); 

      HttpWebRequest request = System.Net.WebRequest.Create(url) as HttpWebRequest; 

      using (HttpWebResponse response = request.GetResponse() as HttpWebResponse) 
      { 
       StreamReader reader = new StreamReader(response.GetResponseStream()); 
       string vals = reader.ReadToEnd(); 

       foreach (string token in vals.Split('&')) 
       { 
        //meh.aspx?token1=steve&token2=jake&... 
        tokens.Add(token.Substring(0, token.IndexOf("=")), 
         token.Substring(token.IndexOf("=") + 1, token.Length - token.IndexOf("=") - 1)); 
       } 
      } 
      string access_token = tokens["access_token"]; 
      var client = new FacebookClient(access_token); 

      //dynamic parameters = new ExpandoObject(); 
      string name = "sudhanshu"; 

      name += " new data"; 

      client.Post("/1168908853153698/feed", new { message = "My first appProduct "+name+" ." }); 



     } 

    } 

} 
+0

verwenden, um eine Seite Token, kein Benutzertoken. – luschn

+0

http://www.devils-heaven.com/facebook-access-tokens/ – luschn

+0

Ich benutze bereits Seite Token. –

Antwort

1

Sie benötigen einen Seite Token verwenden, ist kein Benutzer-Token. Stellen Sie sicher, es ist wirklich eine Seite Token durch Debugging: https://developers.facebook.com/tools/debug/accesstoken/

Auch publish_actions ist die falsche Erlaubnis als Seite zu veröffentlichen, müssen Sie publish_pages verwenden.

Zusätzliche Informationen:

+0

ich verwendet publish_pages Methode, aber immer noch seine Veröffentlichung auf Besucher Post –

+0

dann verwenden Sie keine Seite Token. Stellen Sie sicher, dass Sie den Unterschied zwischen Benutzer- und Seiten-Token kennen und überprüfen Sie die Links. – luschn

+0

Vielen Dank für Ihre Hilfe jetzt kann ich direkt auf Facebook-Seite schreiben. –

Verwandte Themen