2015-05-27 2 views
0

Im используя этот код:Попытки получить отбой страницы с помощью facebook SDK C#

  var client = new FacebookClient("https://www.facebook.com/{accountname}"); 
      dynamic result = client.Get("/me/posts"); 
      List<Posts> postsList = new List<Posts>(); 

      for (int i = 0; i < result.Count; i++) 
      { 
       Posts posts = new Posts(); 

       posts.PostId = result.data[i].id; 
       if (object.ReferenceEquals(result.data[i].story, null)) 
        posts.PostStory = "this story is null"; 
       else 
        posts.PostStory = result.data[i].story; 
       if (object.ReferenceEquals(result.data[i].message, null)) 
        posts.PostMessage = "this message is null"; 
       else 
        posts.PostMessage = result.data[i].message; 

       posts.PostPicture = result.data[i].picture; 
       posts.UserId = result.data[i].from.id; 
       posts.UserName = result.data[i].from.name; 

       postsList.Add(posts); 
      } 

В {имя_учетной_записи} Я положил официальный счет постов, которые я хочу получить и Im получают эту ошибку:

(OAuthException - # 1) Плохой подпись

Я просто хочу, чтобы показать последний пост счета facebook, есть ли другой способ? Или что мне следует публиковать как {accountname}

Спасибо.

+0

Что вызов неявно делается с помощью этого клиентского вызова? Для выполнения этих запросов вам также нужен токен доступа. –

ответ

0

Я сделал работу

string app_id = "403769793162381"; 
      string secret_id = "8bc73e4e6b780b52cfe9c1c6618958cd"; 
      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)); 
       return false; 
      } 
      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}&perms=status_update" 
        , app_id, Request.Url.AbsoluteUri, scope, Request["code"].ToString(), secret_id); 
       HttpWebRequest request = WebRequest.Create(url) as HttpWebRequest; 
       using (HttpWebResponse response = request.GetResponse() as HttpWebResponse) 
       { 

        StreamReader rd = new StreamReader(response.GetResponseStream()); 

        string vals = rd.ReadToEnd(); 
        foreach (string token in vals.Split('&')) 
        { 
         tokens.Add(token.Substring(0, token.IndexOf('=')), token.Substring(token.IndexOf("=") + 1, token.Length - token.IndexOf('=') - 1)); 
        } 
        string access_token = tokens["access_token"]; 
        Session["access_token"] = access_token; 

        var client = new FacebookClient(access_token); 


        dynamic mywallPosts = client.Get("/me/posts"); 
        List<Posts> fb_posts = new List<Posts>(); 

        for (int i = 0; i < mywallPosts.data.Count; i++) 
        { 

         Posts post = new Posts(); 
         post.PostId = mywallPosts.data[i].id; 
         post.PostMessage = mywallPosts.data[i].message; 
         post.PostPicture = mywallPosts.data[i].picture; 
         post.PostStory = mywallPosts.data[i].story; 
         post.UserName = mywallPosts.data[i].from.name; 

         fb_posts.Add(post); 
        } 
Смежные вопросы