-1

我们正在尝试通过 WP7 中的 silverlight 代码将图像上传到 Twitter。我们可以发布消息,但不能发布图像。

我们尝试了所有方法,包括下载他们的库,但没有得到提示。

在以下链接中, https://dev.twitter.com/docs/api/1/post/statuses/update_with_media

有一点我们无法设定。“与 POST 状态/更新不同,此方法需要原始多部分数据。您的 POST 请求的 Content-Type 应使用 media[] 参数设置为 multipart/form-data”

我不明白该怎么说。

任何人都可以指导我或提供图片上传的样本吗?

4

1 回答 1

0

如果您的照片名为 LoadedPhoto,您可以从中创建内存流

MemoryStream ms = new MemoryStream(); 
LoadedPhoto.SaveJpeg(ms, LoadedPhoto.PixelWidth, LoadedPhoto.PixelHeight, 0, 100); 

根据您获取的身份验证详细信息创建 OAuthCredentials 对象

var credentials = new OAuthCredentials
{
    Type = OAuthType.ProtectedResource,
    SignatureMethod = OAuthSignatureMethod.HmacSha1,
    ParameterHandling = OAuthParameterHandling.HttpAuthorizationHeader,
    ConsumerKey = Common.TwitterSettings.ConsumerKey,
    ConsumerSecret = Common.TwitterSettings.ConsumerKeySecret,
    Token = file.AccessToken,
    TokenSecret = file.AccessTokenSecret,
    Version = "1.0"
};

创建一个 RestClient 和一个 RestRequest

var restClient = new RestClient
{
    Authority = "https://upload.twitter.com"
};

var restRequest = new RestRequest
{
    Credentials = credentials,
    Path = "/1/statuses/update_with_media.xml",
    Method = Hammock.Web.WebMethod.Post
};

将流位置设置为 0

ms.Position = 0;

向 RestRequest 添加字段

restRequest.AddField("status", message);
restRequest.AddFile("media[]", "ScreenShot.png", ms, "image/jpeg");

然后开始请求

restClient.BeginRequest(restRequest, callback);

callback 是请求的回调方法。

摘自我的博文,有兴趣的可以去看看。

于 2012-09-10T09:18:49.810 回答