2015-04-06 2 views
0

Без особых проблем мне удалось опубликовать сообщения о статусе на моем личном фиде Facebook. Но я пытаюсь опубликовать сообщения на моей странице в качестве страницы.Опубликовать как страница на странице MVC Facebook

public class Facebook 
     { 
      private const string FacebookApiId = "xxxxxxxxxxxxxxx"; 
      private const string FacebookApiSecret = "xxxxxxxxxxxxxxxx"; 
      string scope = "publish_stream,manage_pages"; 


      private const string AuthenticationUrlFormat = "https://graph.facebook.com/oauth/access_token?client_id={0}&client_secret={1}&grant_type=client_credentials&scope=publish_stream,manage_pages"; 


      static string GetAccesToken(string apiId, string apiSecret) 
      { 

       string url = string.Format(AuthenticationUrlFormat, apiId, apiSecret); 
       string accesToken = string.Empty; 
       WebRequest request = WebRequest.Create(url); 
       WebResponse response = request.GetResponse(); 

       using (Stream responseStream = response.GetResponseStream()) 
       { 
        StreamReader reader = new StreamReader(responseStream, Encoding.UTF8); 
        String responseString = reader.ReadToEnd(); 

        NameValueCollection query = HttpUtility.ParseQueryString(responseString); 

        accesToken = query["access_token"]; 
       } 
       if (accesToken.Trim().Length == 0) 
       { 
        throw new Exception("no Access Token"); 
       } 

       return accesToken; 

      } 

      static void PostMessage(string accessToken, JobOfferModel message) 
      { 
       try 
       { 
        FacebookClient facebookClient = new FacebookClient(accessToken); 

        dynamic messagePost = new ExpandoObject(); 
        messagePost.access_token = accessToken; 

        messagePost.name = message.JobTitle; 
        messagePost.message = message.Content; 
        messagePost.caption = "www.Site.com"; 





        facebookClient.Post("me/feed", messagePost); 
       } 
       catch (FacebookOAuthException ex) 
       { 
        Console.WriteLine(ex); 
       } 
       catch (Exception ex) 
       { 
+0

где вы, ребята, продолжаете копировать свой код? publish_stream устаревает с года ... В любом случае вам нужно использовать токен страницы. этот вопрос был задан много раз в stackoverflow, просто выполните поиск. – luschn

+0

Спасибо за ответ. Я немного новичок в этом, поэтому я использую лучшие результаты того, что показывает мне google :) – Qwerty

+0

всегда сначала смотрите на документы facebook, они предлагают примерный код и всю необходимую информацию. – luschn

ответ

0

Как упоминалось, вам необходимо использовать токен доступа к странице для публикации в виде страницы. Вы можете получить это, сделав вызов API для конечной точки «me/accounts». Это вернет список страниц, которыми вы управляете, и токен доступа для каждого.

Используя токен доступа к странице, сделайте следующий запрос «me/feed», чтобы опубликовать эту страницу. Вы можете получить более подробную информацию об использовании токенов доступа к странице здесь: https://developers.facebook.com/docs/facebook-login/access-tokens#pagetokens

Вы также должны обновить свою область входа, чтобы использовать новое разрешение «publish_actions» вместо «publish_stream».

Смежные вопросы