0

我正在尝试使用这种方法将照片发布到 Facebook 墙上。

/// <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。我无法让它工作,我不确定那个字符串会是什么样子?谁能举个例子?

4

1 回答 1

0

您需要发布到https://graph.facebook.com/me/feed?access_token=YOUR_ACCESS_TOKEN,发布的数据应如下所示

message=这是一条测试消息

(您应该使用Uri.EscapeDataString转义消息中的特殊字符,但不要转义 '=')

您还可以指定其他属性(如文档中所定义),例如:

message={此处转义消息}&link={此处转义链接}&caption={此处转义标题文本}&title={此处转义标题文本}&description={此处转义描述文本}&picture={此处转义图片网址}

(当然没有花括号。)这将在您的帖子中嵌入一个链接,该链接具有您选择的标题、标题、描述和缩略图。

我们看不到您的WebResponseGet方法,但您应该检查发布不成功时 responseData 包含的内容。或者,在您的 WebResponseGet 中查找 HTTP 状态代码和 WebExceptions。有助于读取返回的数据;facebook 以 JSON 格式返回错误,如下所示(示例):

{"error":{"message":"缺少消息或附件。","type":"FacebookApiException","code":100,"error_subcode":1349125}}

请注意,发布需要publish_actions您的应用程序的权限(您需要在请求访问令牌时将其添加到范围内,如果在您请求令牌时它不在范围内,则需要一个新令牌)。

于 2014-05-11T13:36:12.773 回答