2012-03-06 90 views
-1

我正在使用Facebook C#SDK的朋友的牆上張貼,我已經爲我的本地和發佈服務器做出單獨的FB應用程序,問題出現的是,它工作正常我的本地主機,但是當我運行發佈網站時,它並沒有發佈在牆上,但顯示發佈在牆上成功(我顯示的消息,如果牆帖是成功的)我正在提供AppID和AppSecret正確 以下是我的代碼發佈朋友的牆。Facebook的C#SDK後發佈不張貼在牆上

var fbApplication = new DefaultFacebookApplication { AppId = fbapp, AppSecret = fbsec }; 
       var current = new FacebookWebContext(fbApplication); 

       Facebook.Web.FacebookWebClient client = new Facebook.Web.FacebookWebClient(fbtoken);     
       dynamic parameters = new ExpandoObject(); 
       parameters.message = ""; 
       parameters.link = "Link to my Website"; 
       parameters.name = "Name"; 
       parameters.caption = "MyTitle"; 
       parameters.description = "Hello World"; 
       parameters.from = fromId; 

      object resTest = client.Post("/" + friendId + "/feed", parameters); 

回答

0

你從哪裏得到令牌?你是否顯示認證對話框並讓用戶用他/她的憑證登錄到FB?

此外 - 當用戶授權應用程序在用戶帳戶下發布時,請求應該從「我」(假設用戶)發出,而不是從「friendId」發出。

,如果你從什麼地方有認證令牌,那麼這裏是代碼我成功地使用在牆面上發佈:

var fbAPI = new FacebookApp(accesstoken); 

var params = new Dictionary<string, object> { 
      { "name", "POST NAME" }, 
      {"caption", "test"}, 
      {"link", "http://www.google.com/"}, 
      {"description", "bla-bla-bla"}, 
      {"picture", imageUrl}, 
      {"message", "check this out!"}}; 

var result = fbAPI.Post("http://graph.facebook.com/me/feed", params); 

希望幫助。如果沒有,請提供更多信息。

+0

如果我使用我,那麼它會貼在我的牆上,而不是我的朋友的牆,我得到的令牌是從FaceBook成功登錄後,此代碼在本地主機上正常工作,我可以發佈在我朋友的牆上但是當我發佈它時,它甚至不在本地發佈 – 2012-03-06 14:44:47

+0

這個想法是,你使用accesstoken IMPERSONATE用戶 - 因此使用「我」,所以應用程序將發佈在用戶的牆上。您的應用是否有「登錄」彈出窗口,或者您是否從瀏覽器登錄?這是一個網站嗎?請顯示完整的代碼。 – avs099 2012-03-06 15:01:54

+0

沒有登錄彈出它重定向到facebook網站登錄 – 2012-03-07 09:41:55