Esempio n. 1
0
        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!
        }
Esempio n. 2
0
        /// <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!");
            }
        }
Esempio n. 3
0
        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();
        }
Esempio n. 4
0
        /// <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
            });
        }
Esempio n. 5
0
        // 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);//画像をツイート
        }
Esempio n. 6
0
        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;
            }
        }
Esempio n. 7
0
        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();
        }
Esempio n. 8
0
        public void OnUploadVideoToMediaLibraryComplete(ResultContainer resultContainer)
        {
            var result = new MediaUploadResult(resultContainer);

            CallbackManager.OnFacebookResponse(result);
        }
Esempio n. 9
0
        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);
            }
        }
Esempio n. 10
0
        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, "请核对信息后再操作!");
            }
        }