2013-10-19 151 views
0

我在我的應用程序中使用了Facebook .Net SDK(http://facebooksdk.net/)。我需要將圖像張貼到用戶的牆上或他的頁面上。用C#SDK在Facebook上發佈媒體到用戶/頁面牆

我有這樣的一段代碼,試圖做到這一點:

var postUrl = "<fbid>/feed"; 
var fbParameters = new Dictionary<string,object>(); 
fbParameters["message"] = postRequest.FacebookPostContent; 
if (postRequest.MediaData != null && postRequest.MediaData.Length > 0) 
{ 
    var stream = new MemoryStream(postRequest.MediaData); 
    if (postRequest.ContentType.Equals("image/jpeg")) 
    { 
     postUrl = postUrl.Replace("/feed", "/photos"); 
     fbParameters["picture"] = new FacebookMediaStream { ContentType = postRequest.ContentType, FileName = DateTime.UtcNow.ToString("ddmmyyyyhhmmss") + "-photo.jpeg" }.SetValue(stream); 
     } 
} 
if (!string.IsNullOrWhiteSpace(postRequest.FacebookPageId)) 
{ 
     fbUserID = postRequest.FacebookPageId; 
} 
postUrl = postUrl.Replace("<fbid>", fbUserID); 
var result = await facebookClient.PostTaskAsync(postUrl, fbParameters); 

看我postUrl變量。我使用Facebook中的用戶ID或PageID(如果它是一個頁面)來更新,以便將帖子正確地發佈到正確的對象中。如果有一些圖片需要上傳,請將其添加到字典中。

所以,有了它這一點,我有以下問題:

  1. 當fbUserID是用戶ID,後發生的完美,用圖像和說明,但是,當ID是PAGEID,只有描述文字發佈和圖像被忽略(用戶具有manage_page權限,所以我不認爲這是一個權限問題)。我做錯了,圖像沒有被張貼到頁面的牆上?
  2. 如果我想發佈視頻而不是圖片,應該在此代碼中更改哪些內容?

在SO中已經看到了其他技術的許多問題,但從來沒有一個確鑿的解決方案。

非常感謝您的幫助,我非常感謝。

問候, Gutemberg

回答

0

明白了!

Facebook在頁面內創建了一個不同的部分,稱爲其他人在測試頁面上發表的最近文章允許用戶發佈圖像的地方就像附件圖標一樣。爲了直接發佈到頁面的feed/wall,我只需要使用用戶access_token(即使用戶授予manage_pages權限),只需使用/ me/accounts對象中的access_token即可訪問相應頁面。

關於視頻後,我只需設置的ContentType爲「視頻/ MPEG」,並在服務器,而不是一套畫面上的字典參數,我給自己定了視頻領域與視頻的byte [] 。

謝謝!

問候,

相關問題