我需要幫助在Windows手機直接上傳圖片到Twitter 7.上傳圖像直接到Twitter
我與Twitter的OAuth的流程進行,也可以可以更新微博,但我一直沒能上傳圖片使用wp7的twitter?
我需要幫助在Windows手機直接上傳圖片到Twitter 7.上傳圖像直接到Twitter
我與Twitter的OAuth的流程進行,也可以可以更新微博,但我一直沒能上傳圖片使用wp7的twitter?
我已經使用Hammock.WindowsPhone.Mango庫爲此制定瞭解決方案。 (TweetSharp內部使用吊牀庫的OAuth和其他功能,但我從來沒有使用TweetSharp或Twitterizer)
我從Nuget
安裝最新版本的吊牀,然後用於照片上傳下面的代碼到Twitter:
public void uploadPhoto(Stream photoStream, string photoName)
{
var credentials = new OAuthCredentials
{
Type = OAuthType.ProtectedResource,
SignatureMethod = OAuthSignatureMethod.HmacSha1,
ParameterHandling = OAuthParameterHandling.HttpAuthorizationHeader,
ConsumerKey = TwitterSettings.consumerKey,
ConsumerSecret = TwitterSettings.consumerKeySecret,
Token = TwitterSettings.accessToken,
TokenSecret = TwitterSettings.accessTokenSecret,
Version = "1.0a"
};
RestClient restClient = new RestClient
{
Authority = "https://upload.twitter.com",
HasElevatedPermissions = true,
Credentials = credentials,
Method = WebMethod.Post
};
RestRequest restRequest = new RestRequest
{
Path = "1/statuses/update_with_media.json"
};
restRequest.AddParameter("status", tbxNewTweet.Text);
restRequest.AddFile("media[]", photoName, photoStream, "image/jpg");
}
restClient.BeginRequest(restRequest, new RestCallback(PostTweetRequestCallback));
}
private void PostTweetRequestCallback(RestRequest request, Hammock.RestResponse response, object obj)
{
if (response.StatusCode == System.Net.HttpStatusCode.OK)
{
//Success code
}
}
這裏, photoName距離PhotoChooserTask
012選擇( 「e.OriginalFileName」) 照片媒體是 「e.ChosenPhoto」 的圖像的名稱和.AddFile的第四個參數()應該被照顧(同時做這個示例中,我還沒有考慮其他格式,你必須要在自己的應用護理)
我希望這有助於!
MediaUpdateUrl應該是「https://upload.twitter.com/1/statuses/update_with_media.json」嗎? – loyalpenguin
@loyalpenguin對不起,編輯我的代碼。它的「https://upload.twitter.com」 – nkchandra
好吧,我改變了這一切,似乎順利,但當我得到響應回來,我得到一個「未經授權」的消息。任何想法,爲什麼我可能會得到這個?我傳遞了一個有效的令牌和令牌密碼。 – loyalpenguin
LINQ到Twitter支持WP7和具有TweetWithMedia方法是這樣的:
private void PostButton_Click(object sender, RoutedEventArgs e)
{
if (string.IsNullOrWhiteSpace(TweetTextBox.Text))
MessageBox.Show("Please enter text to tweet.");
ITwitterAuthorizer auth = SharedState.Authorizer;
if (auth == null || !auth.IsAuthorized)
{
NavigationService.Navigate(new Uri("/OAuth.xaml", UriKind.Relative));
}
else
{
var twitterCtx = new TwitterContext(auth);
var media = GetMedia();
twitterCtx.TweetWithMedia(
TweetTextBox.Text, false, StatusExtensions.NoCoordinate, StatusExtensions.NoCoordinate, null, false,
media,
updateResp => Dispatcher.BeginInvoke(() =>
{
HandleResponse(updateResp);
}));
}
}
喬
如何在應用程序運行之間預先保存SharedState.Authorizer,以便每次運行應用程序時都無需授權? –
@IgorKulman,您可以保存證書而不是授權人。更多信息在這裏:http://linqtotwitter.codeplex.com/discussions/362342。 –
...如果您使用的是客戶端庫,其中一個,因爲你已經標記這個問題與多個 –
我嘗試了Windows Phone的tweetsharp。並且還發布了oauth流的twitterizer併發布推文。感謝您的回覆:) –
您試過什麼代碼? –