2012-04-26 109 views
0

我試圖用這個方法來發布照片到Facebook塗鴉牆。Facebook的圖形API塗鴉牆

/// <param name="method">Http Method</param> 
/// <param name="url">Full url to the web resource</param> 
/// <param name="postData">Data to post in querystring format</param> 
/// <returns>The web server response.</returns> 

public string WebRequest(Method method, string url, string postData) 
{ 
    HttpWebRequest webRequest = null; 
    StreamWriter requestWriter = null; 
    string responseData = ""; 
    webRequest = System.Net.WebRequest.Create(url) as HttpWebRequest; 
    webRequest.Method = method.ToString(); 
    webRequest.ServicePoint.Expect100Continue = false; 
    webRequest.UserAgent = "[]"; 
    webRequest.Timeout = 20000; 

    if (method == Method.POST) 
    { 
     webRequest.ContentType = "application/x-www-form-urlencoded"; 

     requestWriter = new StreamWriter(webRequest.GetRequestStream()); 
     try 
     { 
      requestWriter.Write(postData); 
     } 
     catch 
     { 
      throw; 
     } 
     finally 
     { 
      requestWriter.Close(); 
      requestWriter = null; 
     } 
    } 
    responseData = WebResponseGet(webRequest); 
    webRequest = null; 
    return responseData; 
} 

什麼我遇到的問題是POSTDATA。我無法讓它工作,我不確定那個字符串會是什麼樣子?任何人都可以舉個例子嗎?

+0

是否有錯誤?你的意思是「我無法讓它工作?」 – 2012-04-26 12:57:57

+0

什麼都沒有發佈。它一次給牆上貼了一條消息,但就是這樣。 – 2012-04-26 13:26:09

+0

你有沒有有效的令牌?它可能會過期嗎? – avs099 2012-04-30 12:05:42

回答

0

您需要發佈到https://graph.facebook.com/me/feed?access_token=YOUR_ACCESS_TOKEN, 和發佈數據應該看起來像

消息=這是一封測試郵件

(你應該在消息中轉義特殊字符Uri.EscapeDataString,但不要逃避'=')

您還可以指定其他屬性(如在documentation中定義的),例如:

消息= {逃脫這裏消息} &鏈路= {了urlencoded這裏鏈路} &字幕= {逃脫字幕這裏文本} &標題= {逃脫標題這裏文本} &描述= {逃脫的描述在這裏文本} &圖片= {url編碼圖片URL}

(當然沒有大括號)。這將嵌入鏈接到您的文章,有一個標題,標題,描述和您所選擇的縮略圖。

我們看不到你的WebResponseGet的方法,但你應該檢查一下responseData包含當過帳不會成功。或者,在WebResponseGet中查找HTTP狀態代碼和WebException。它有助於讀取返回的數據; Facebook在一個JSON格式這樣的()所返回的錯誤:

{ 「錯誤」:{ 「消息」: 「缺少消息或 附件。」, 「類型」: 「FacebookApiException」, 「代碼」: 100,「error_subcode」:1349125}}

注意,發帖要求publish_actions同意您的應用程序(你需要將它添加到的範圍要求的訪問令牌時,如果它的作用域時不你請求了令牌,你需要一個新的令牌)。