private void UploadGifToTwitter(string filename) { //var s = OAuth.Authorize("nIQvaoLZJGDbrONRbtdfkCClV", "IBqijdZsH8JOG5z5M1EAhGSdGUsHyxCOK4NOWyxXz3I9vF245w"); //System.Diagnostics.Process.Start(s.AuthorizeUri.AbsoluteUri); //var url = s.AuthorizeUri; //Console.WriteLine("access here: {0}", s.AuthorizeUri); //var t = OAuth.GetTokens(s, "PIN code");//s.GetTokens("PINCODE"); var t = CoreTweet.Tokens.Create("nIQvaoLZJGDbrONRbtdfkCClV", "IBqijdZsH8JOG5z5M1EAhGSdGUsHyxCOK4NOWyxXz3I9vF245w", "1316448422-cBkHkYPsVxwAxqjdVwOcapF1jArGmtnLtxW3ZmX", "RcCaVMkahGRr1GSNMdm85Pn39oybxexGYAt4ENdLrO3P5"); MediaUploadResult image = t.Media.Upload(media: new FileInfo(filename)); try { Status st = t.Statuses.Update( status: "gif_anime", media_ids: new long[] { image.MediaId } ); MessageBox.Show("アップロードされました"); } catch (TwitterException e) { MessageBox.Show("接続エラー"); } //upload saremasita! }
/// <summary> /// Upload Video to Twitter and Tweet. /// </summary> /// <param name="text">Tweet content.</param> /// <param name="uri">Media Uri</param> private async void updateWithMedia(String text, Uri uri) { try { if (uri == null) { MessageBox.Show(Properties.Resources.NoFileSelected); return; } BeforeSendTweet(); // await tokens.Statuses.UpdateAsync(status => "TEST"); var fi = new FileInfo(uri.LocalPath); // MessageBox.Show(fi.FullName); // MessageBox.Show(fi.Length.ToString()); MediaUploadResult result = await tokens.Media.UploadChunkedAsync(fi.OpenRead(), (int)fi.Length, UploadMediaType.Video, new { }); Status s = await tokens.Statuses.UpdateAsync( status => text, media_ids => result.MediaId ); AfterSendTweet(SUCCESS); // めんどくさいのでツイート処理は別添え SucceedUpload(s); } catch (Exception e) { AfterSendTweet(FAIL); Console.WriteLine(e.StackTrace); MessageBox.Show(e.Message, "Error!"); } }
async void Tweet_Clicked(object sender, EventArgs e) { if (tweetContent.Text == "") { return; } MediaUploadResult image = new MediaUploadResult(); await App.tokens.Statuses.UpdateAsync(status => tweetContent.Text); await Navigation.PopAsync(); }
/// <summary> /// Converts a <see cref="MediaUploadResult"/> into a <see cref="AddMediaCommand"/>. /// </summary> public static AddMediaCommand ToAddMediaCommand(this MediaUploadResult uploadResult, MediaType?mediaType = null, string title = null, string description = null) { Ensure.Argument.NotNull(uploadResult, "uploadResult"); return(new AddMediaCommand { Uri = uploadResult.Uri, SizeInBytes = uploadResult.SizeInBytes, Title = title, Description = description, MediaType = mediaType }); }
// Twitter 画像投稿機能 private void Form1_DragDrop(object sender, DragEventArgs e) { string[] path = (string[])e.Data.GetData(DataFormats.FileDrop, false);//ドロップされたファイルのパスを取得(複数可) var ids = new List <long>(); //各画像をアップロードしIDを取得 foreach (var p in path) { MediaUploadResult image = tokens.Media.Upload(media: new FileInfo(p)); ids.Add(image.MediaId); } Status s = tokens.Statuses.Update(status: "***自動投稿時の任意の文字***", media_ids: ids);//画像をツイート }
private async Task tweetAsync(Tokens token, string text, string[] uploadFiles) { this.tweetGrid.IsEnabled = false; try { List <MediaUploadResult> results = new List <MediaUploadResult>(); foreach (string filePath in uploadFiles) { MediaUploadResult result = await token.Media.UploadAsync(media : new FileInfo(filePath)); results.Add(result); } var param = new Dictionary <string, object>(); param.Add("status", text); if (0 < results.Count) { param.Add("media_ids", results.Select(x => x.MediaId)); } if (this.replyTo != null) { param.Add("in_reply_to_status_id", this.replyTo.Id.ToString()); } await token.Statuses.UpdateAsync(param); this.textBox_Tweet.Clear(); this.media.Clear(); this.replyTo = null; this.replyToItem.Clear(); } catch (TwitterException tex) { MessageBox.Show(tex.Message, "Twitter Exception.", MessageBoxButton.OK, MessageBoxImage.Warning); } finally { this.tweetGrid.IsEnabled = true; } }
public void Tweet_WithImage() { // prep string message = "some message"; FileInfo image = new FileInfo("file name"); MediaUploadResult mediaID = new MediaUploadResult(); mediaID.MediaId = 12345; mTokens.Setup(x => x.UpdateMedia(image)).Returns(mediaID); mTokens.Setup(x => x.Update(message, new long[] { mediaID.MediaId })); twitter.Setup(mTokens.Object); // call twitter.Tweet(message, image); // verify mTokens.Verify(x => x.UpdateMedia(image)); mTokens.Verify(x => x.Update(message, new long[] { mediaID.MediaId })); mTokens.VerifyNoOtherCalls(); }
public void OnUploadVideoToMediaLibraryComplete(ResultContainer resultContainer) { var result = new MediaUploadResult(resultContainer); CallbackManager.OnFacebookResponse(result); }
public void Tweet(string text, int count) { const string completeText = "ついーとしました(:3)"; const string failureText = "しっぱいしました(X3)"; string textWithCount = text; try { if (count != 1) { textWithCount += $"({count}回目)"; if (textWithCount.Length > 140) { StatusLabel.Text = failureText; TweetTextBox.Focus(); return; } } ToolStripMenuItem a1 = (ToolStripMenuItem)menuStrip1.Items[1]; try { if (picturecounts - 1 == 0) { Tokens.Statuses.Update(status => textWithCount, in_reply_to_status_id => replyidstr.Text); replyidstr.Text = ""; } else if (picturecounts - 1 == 1) { MediaUploadResult first = Tokens.Media.Upload(media: new FileInfo(@a1.DropDownItems[1].Text)); Status s = Tokens.Statuses.Update(status: textWithCount, media_ids: new long[] { first.MediaId }, in_reply_to_status_id: long.Parse(replyidstr.Text)); addPictureToolStripMenuItem.DropDownItems.RemoveAt(1); picturecounts--; picturecount.Text = (picturecounts - 1).ToString(); replyidstr.Text = ""; } else if (picturecounts - 1 == 2) { MediaUploadResult first = Tokens.Media.Upload(media: new FileInfo(@a1.DropDownItems[1].Text)); MediaUploadResult second = Tokens.Media.Upload(media: new FileInfo(@a1.DropDownItems[2].Text)); Status s = Tokens.Statuses.Update(status: textWithCount, media_ids: new long[] { first.MediaId, second.MediaId }); addPictureToolStripMenuItem.DropDownItems.RemoveAt(1); addPictureToolStripMenuItem.DropDownItems.RemoveAt(1); picturecounts = picturecounts - 2; picturecount.Text = (picturecounts - 1).ToString(); replyidstr.Text = ""; } else if (picturecounts - 1 == 3) { MediaUploadResult first = Tokens.Media.Upload(media: new FileInfo(@a1.DropDownItems[1].Text)); MediaUploadResult second = Tokens.Media.Upload(media: new FileInfo(@a1.DropDownItems[2].Text)); MediaUploadResult third = Tokens.Media.Upload(media: new FileInfo(@a1.DropDownItems[3].Text)); Status s = Tokens.Statuses.Update(status: textWithCount, media_ids: new long[] { first.MediaId, second.MediaId, third.MediaId }); addPictureToolStripMenuItem.DropDownItems.RemoveAt(1); addPictureToolStripMenuItem.DropDownItems.RemoveAt(1); addPictureToolStripMenuItem.DropDownItems.RemoveAt(1); picturecounts = picturecounts - 3; picturecount.Text = (picturecounts - 1).ToString(); replyidstr.Text = ""; } else if (picturecounts - 1 == 4) { MediaUploadResult first = Tokens.Media.Upload(media: new FileInfo(@a1.DropDownItems[1].Text)); MediaUploadResult second = Tokens.Media.Upload(media: new FileInfo(@a1.DropDownItems[2].Text)); MediaUploadResult third = Tokens.Media.Upload(media: new FileInfo(@a1.DropDownItems[3].Text)); MediaUploadResult fourth = Tokens.Media.Upload(media: new FileInfo(@a1.DropDownItems[4].Text)); Status s = Tokens.Statuses.Update(status: textWithCount, media_ids: new long[] { first.MediaId, second.MediaId, third.MediaId, fourth.MediaId }); addPictureToolStripMenuItem.DropDownItems.RemoveAt(1); addPictureToolStripMenuItem.DropDownItems.RemoveAt(1); addPictureToolStripMenuItem.DropDownItems.RemoveAt(1); addPictureToolStripMenuItem.DropDownItems.RemoveAt(1); picturecounts = picturecounts - 4; picturecount.Text = (picturecounts - 1).ToString(); replyidstr.Text = ""; } } catch (Exception ex) { StatusLabel.Text = failureText; } TweetTextBox.Clear(); var resultText = completeText; if (count != 1) { resultText += $"({count}回目)"; } StatusLabel.Text = resultText; TweetTextBox.Focus(); } catch { count++; Tweet(text, count); } }
protected void btnSave_Click(object sender, EventArgs e) { if (null == Session["strSiteName"] || null == Session["strSiteCode"] || null == Session["strLoginName"]) { Response.Write("<script language=JavaScript>;parent.location.href='../Index.aspx';</script>"); Response.End(); } if (!string.IsNullOrEmpty(keyword.Text.Trim()) && fudVoice.HasFile && fudVoice.PostedFile.ContentLength <= 1024 * 1024 * 2 && (fudVoice.PostedFile.FileName.ToLower().Contains(".mp3") || fudVoice.PostedFile.FileName.ToLower().Contains(".amr"))) {//语音(voice):2M,播放长度不超过60s,支持AMR\MP3格式 try { //先上传并插入微信媒体表 string fileDir = string.Format("/Uploads/{0}/", DateTime.Now.ToString("yyyyMM")); if (!System.IO.Directory.Exists(HttpContext.Current.Server.MapPath(fileDir))) { System.IO.Directory.CreateDirectory(HttpContext.Current.Server.MapPath(fileDir)); } string ext = System.IO.Path.GetExtension(fudVoice.FileName); string fileName = string.Format("{0}{1}", Guid.NewGuid().ToString("N"), ext); string filePath = fileDir + fileName; fudVoice.SaveAs(HttpContext.Current.Server.MapPath(filePath)); Media media = new Media() { MediaName = fudVoice.FileName, MediaFile = filePath, MediaType = MediaUploadType.Voice.ToString().ToLower() }; //选中自动同步时,将语音文件自动同步至微信服务器 if (cboIsSyn.Checked) { WXConfigDAL cdal = new WXConfigDAL(); Model.WeiXin.WXConfig wxConfig = cdal.GetWXConfigBySiteCode(Session["strSiteCode"].ToString()); if (wxConfig != null) { WeiXinCore.Models.WeiXinConfig weixinConfig = new WeiXinCore.Models.WeiXinConfig() { ID = wxConfig.WXID, Name = wxConfig.WXName, Token = wxConfig.WXToken, AppId = wxConfig.WXAppID, AppSecret = wxConfig.WXAppSecret }; WeiXinCore.WeiXin weixin = new WeiXinCore.WeiXin(weixinConfig); MediaUploadResult obj = weixin.PostMedia(HttpContext.Current.Server.MapPath(filePath), MediaUploadType.Voice); media.MediaID = obj.MediaID; media.LastSynTime = DateTime.Now; } } MediaDAL.CreateInstance().InsertInfo(media); //插入自动回复匹配表 WXConfigDAL configdal = new WXConfigDAL(); DataSet wxconfigds = configdal.GetWXConfigDataList(Session["strSiteCode"].ToString()); MsgAutoRule model = new MsgAutoRule(); MsgAutoRuleDAL dal = new MsgAutoRuleDAL(); model.MatchPattern = keyword.Text; model.Order = Convert.ToInt32(sort.Text); model.MsgValue = media.ID;//对应微信媒体文件ID,因微信上传文件有效期为两天,所以需要调度程序定期自动上传 model.ID = Guid.NewGuid().ToString("N").ToUpper(); model.Enabled = 1; model.LastModTime = DateTime.Now; model.MatchType = "keywords"; model.MsgType = "voice"; if (wxconfigds != null && wxconfigds.Tables.Count > 0 && wxconfigds.Tables[0].Rows.Count > 0) { model.WXConfigID = wxconfigds.Tables[0].Rows[0]["ID"].ToString(); } if (dal.AddMsgAutoRule(model)) { MessageBox.Show(this, "操作成功!"); } else { MessageBox.Show(this, "操作失败!"); } } catch (Exception ex) { MessageBox.Show(this, ex.Message); } } else { MessageBox.Show(this, "请核对信息后再操作!"); } }