2012-04-25 155 views
2

我試圖使用C#SDK將視頻上傳到Facebook的開放圖。該視頻似乎上傳得很好,我得到了該活動的Id,但僅顯示了示例元數據。將參數傳遞給Facebook Open Graph API

一個小挖之後,我發現這一點:

能夠發佈針對用戶的Open Graph的作用,並具有在步驟3中定義其相應的連接對象類型之前,你現在需要創建一個可公開訪問的網頁,使用Open Graph元標記表示此對象。一旦創建了這個對象頁面,您就可以使用Graph API發佈一個動作。

由於這是一個客戶端應用程序,我沒有可以引用Facebook的網頁。那麼如何傳遞正確的參數呢?

這裏是我的代碼:

var parameters = new Dictionary<string, object>(); 
parameters["source"] = new FacebookMediaObject { ContentType = "video/mpeg", FileName = "video.mpeg" }.SetValue(File.ReadAllBytes(@"D:\sample video.MP4")); 
parameters["og:title"] = "Sample video"; 
parameters["title"] = "Sample video"; 
parameters["og:description"] = "Test description"; 
parameters["highlight"] = "http://samples.ogp.me/287287444686523"; // If I don't put this, the upload fails 
fb.PostAsync("/me/myobjectname:share", parameters); 

謝謝!

回答

0

版本6,你可以這樣做:

var fb = new FacebookClient(accessToken); 
string attachementPath = @"C:\image.jpg"; 

using (var stream = File.OpenRead(attachementPath)) 
{ 
    dynamic result = fb.Post("me/photos", 
           new 
            { 
             message = "upload using Facebook C# SDK", 
             file = new FacebookMediaStream 
               { 
                ContentType = "image/jpg", 
                FileName = Path.GetFileName(attachementPath) 
               }.SetValue(stream) 
            }); 
} 

更多細節here

+0

我正在使用SDK的第6版。儘管如此,您的代碼並不利用Open Graph API中的自定義對象。這就是我想要弄明白的。 – 2012-04-25 04:51:49