示例#1
0
        // コンストラクタ

        public ConfigureApiKeyViewModel(DialogService dialogService, AddAccountService addAccountModel)
        {
            // DI
            _dialogService     = dialogService;
            _addAccountService = addAccountModel;

            // バリデーションを有効化する
            ConsumerKey.SetValidateAttribute(() => ConsumerKey);
            ConsumerSecret.SetValidateAttribute(() => ConsumerSecret);

            // ConsumerKeyとConsumerKeyが正しく入力されているときのみ「次へ」を押せるようにする
            NextCommand = new[]
            {
                ConsumerKey.ObserveHasErrors,
                ConsumerSecret.ObserveHasErrors
            }
            .CombineLatestValuesAreAllFalse()
            .ToReactiveCommand()
            .AddTo(Disposables);

            // 「次へ」が押されたらPinコード設定画面を開く
            NextCommand
            .Subscribe(() =>
            {
                _addAccountService.OpenAuthorizeUrl(ConsumerKey.Value, ConsumerSecret.Value);
                _dialogService.OpenConfigurePincodeView();
            })
            .AddTo(Disposables);
        }
        protected override void Execute(CodeActivityContext context)
        {
            service = new TwitterService(ConsumerKey.Get(context),
                                         ConsumerSecret.Get(context),
                                         AccessToken.Get(context),
                                         AccessSecret.Get(context));
            service.TraceEnabled = true;

            using (var stream = new FileStream(MediaPath.Get(context), FileMode.Open, FileAccess.Read, FileShare.Read))
            {
                TwitterChunkedMedia uploadedMedia = InitialiseMediaUpload(service, stream);

                UploadMediaChunks(service, stream, uploadedMedia);

                FinializeMediaAndWaitForProcessing(service, uploadedMedia);

                // Now send a tweet with the media attached
                var twitterStatus = service.SendTweet(new SendTweetOptions()
                {
                    Status   = Message.Get(context),
                    MediaIds = new string[] { uploadedMedia.MediaId.ToString() }
                });

                //AssertResultWas(service, HttpStatusCode.OK);
                //Assert.IsNotNull(twitterStatus);

                // Capture Posted Tweet Id
                TweetId.Set(context, twitterStatus.Id);
            }
        }
示例#3
0
        }                                  //obtained from OKAPI with method services/users/by_username

        public virtual void LoadSettings()
        {
            try
            {
                string doc;
                using (StreamReader textStreamReader = new StreamReader(Assembly.GetExecutingAssembly().GetManifestResourceStream("GlobalcachingApplication.Plugins.OKAPI.ConsumerKeys.xml")))
                {
                    doc = textStreamReader.ReadToEnd();
                }
                XmlDocument xdoc = new XmlDocument();
                xdoc.LoadXml(doc);
                XmlNode n = xdoc.SelectSingleNode(string.Format("/keys/{0}", GeocodePrefix));
                if (n != null)
                {
                    ConsumerKey    = n.SelectSingleNode("ConsumerKey").InnerText;
                    ConsumerSecret = n.SelectSingleNode("ConsumerSecret").InnerText;
                }

                if (ConsumerKey == null || ConsumerKey.IndexOf(' ') > 0)
                {
                    ConsumerKey = "";
                }
                if (ConsumerSecret == null || ConsumerSecret.IndexOf(' ') > 0)
                {
                    ConsumerSecret = "";
                }
            }
            catch
            {
            }
        }
        internal void ValidateThrowException()
        {
            var missingParams = new List <string>();

            if (string.IsNullOrEmpty(ConsumerKey.Trim()))
            {
                missingParams.Add(nameof(ConsumerKey));
            }

            if (string.IsNullOrEmpty(ConsumerSecret.Trim()))
            {
                missingParams.Add(nameof(ConsumerSecret));
            }

            if (string.IsNullOrEmpty(TokenValue.Trim()))
            {
                missingParams.Add(nameof(TokenValue));
            }

            if (string.IsNullOrEmpty(TokenSecret.Trim()))
            {
                missingParams.Add(nameof(TokenSecret));
            }

            if (missingParams.Any())
            {
                throw new BricklinkMissingCredentialsException(missingParams);
            }
        }
示例#5
0
        public OAuthToken GetAccessToken(OAuthToken reqToken, string verifier)
        {
            var client = new RestClient(_baseUrl)
            {
                Authenticator =
                    OAuth1Authenticator.ForAccessToken(ConsumerKey, ConsumerSecret.To <string>(), reqToken.Token, reqToken.Secret, verifier)
            };

            var response = ExecuteRequest(client, new RestRequest("oauth/access_token"));

            if (response.ResponseStatus != ResponseStatus.Completed || response.StatusCode != HttpStatusCode.OK)
            {
                throw new ETradeAuthorizationFailedException(
                          LocalizedStrings.Str3347Params.Put(response.StatusCode + ": " + response.StatusDescription));
            }

            var qs = HttpUtility.ParseQueryString(response.Content);

            var token  = qs["oauth_token"];
            var secret = qs["oauth_token_secret"];

            if (token.IsEmpty() || secret.IsEmpty())
            {
                throw new ETradeAuthorizationFailedException(LocalizedStrings.Str3348);
            }

            return(new OAuthToken(ConsumerKey, token, secret));
        }
示例#6
0
        public virtual void LoadSettings()
        {
            try
            {
                string      doc  = Utils.ResourceHelper.GetEmbeddedTextFile("/OKAPI/ConsumerKeys.xml");
                XmlDocument xdoc = new XmlDocument();
                xdoc.LoadXml(doc);
                XmlNode n = xdoc.SelectSingleNode(string.Format("/keys/{0}", GeocodePrefix));
                if (n != null)
                {
                    ConsumerKey    = n.SelectSingleNode("ConsumerKey").InnerText;
                    ConsumerSecret = n.SelectSingleNode("ConsumerSecret").InnerText;
                }

                if (ConsumerKey == null || ConsumerKey.IndexOf(' ') > 0)
                {
                    ConsumerKey = "";
                }
                if (ConsumerSecret == null || ConsumerSecret.IndexOf(' ') > 0)
                {
                    ConsumerSecret = "";
                }
            }
            catch
            {
            }
        }
        protected override void Execute(CodeActivityContext context)
        {
            service = new TwitterService(ConsumerKey.Get(context),
                                         ConsumerSecret.Get(context),
                                         AccessToken.Get(context),
                                         AccessSecret.Get(context))
            {
                TraceEnabled = true
            };

            var tweetsSearch = service.Search(new SearchOptions
            {
                Q          = SearchKey.Get(context),
                Resulttype = TwitterSearchResultType.Recent,
                Count      = Count.Get(context)
            });

            List <TwitterStatus> resultList = new List <TwitterStatus>(tweetsSearch.Statuses);


            dtTweet.Columns.Add("Tweet Id");
            dtTweet.Columns.Add("User Name");
            dtTweet.Columns.Add("User Screen Name");
            dtTweet.Columns.Add("Text");
            dtTweet.Columns.Add("Created Date");
            dtTweet.Columns.Add("Retweet Count");
            dtTweet.Columns.Add("Favorite Count");
            dtTweet.Columns.Add("Profile Image URL");

            foreach (var tweet in tweetsSearch.Statuses)
            {
                //tweet.Id; //Id of the tweet
                //tweet.User.ScreenName;  //Screen Name of the user
                //tweet.User.Name;   //Name of the User
                //tweet.Text; // Trimmed Text of the tweet
                //tweet.FullText; // Full Text of the tweet
                //tweet.RetweetCount; //No of retweet on twitter
                //tweet.User.FavouritesCount; //No of Fav mark on twitter
                //tweet.User.ProfileImageUrl; //Profile Image of Tweet
                //tweet.CreatedDate; //For Tweet posted time
                //"https://twitter.com/intent/retweet?tweet_id=" + tweet.Id;  //For Retweet
                //"https://twitter.com/intent/tweet?in_reply_to=" + tweet.Id; //For Reply
                //"https://twitter.com/intent/favorite?tweet_id=" + tweet.Id; //For Favorite

                //Above are the things we can also get using TweetSharp.
                dtTweet.Rows.Add(
                    FetchUserDetails.Get(context) ? tweet.Id : 0L,
                    FetchUserDetails.Get(context) ? tweet.User.Name : "",
                    FetchUserDetails.Get(context) ? tweet.User.ScreenName : "",
                    FetchFullText.Get(context) ? tweet.FullText : tweet.Text,
                    tweet.CreatedDate,
                    tweet.RetweetCount,
                    tweet.FavoriteCount,
                    FetchUserDetails.Get(context) ? tweet.User.ProfileImageUrl : ""
                    );
            }
            OutputResult.Set(context, dtTweet);
        }
示例#8
0
 private void ValidateProtectedResourceState()
 {
     if (ConsumerKey.IsNullOrBlank())
     {
         throw new ArgumentException("You must specify a consumer key");
     }
     if (ConsumerSecret.IsNullOrBlank())
     {
         throw new ArgumentException("You must specify a consumer secret");
     }
 }
        protected override void Execute(CodeActivityContext context)
        {
            service = new TwitterService(ConsumerKey.Get(context),
                                         ConsumerSecret.Get(context),
                                         AccessToken.Get(context),
                                         AccessSecret.Get(context));

            service.Retweet(new RetweetOptions {
                Id = TweetID.Get(context)
            });
        }
        //private TraceSource traceSource = new TraceSource("Workflow");
        protected override IAsyncResult BeginExecute(AsyncCodeActivityContext context, AsyncCallback callback, object state)
        {
            //   traceSource.TraceEvent(TraceEventType.Information, 0, "0");

            /* String sfdcConsumerkey = "3MVG9CxwbdV68qJIIz27ukIaKmSfOCVO8I6JbMGHkEt4s5KwlreFqQqE.5UIpNcOds3xKVoib9cEZpUk3f5os";
             * String sfdcConsumerSecret = "8782286442880574610";
             * String sfdcUserName = "******";
             * String sfdcPassword = "******";
             * String sfdcSecurityToken = "dg912XkpjYZjhtj2kOMqjh4qU";*/

            String sfdcConsumerkey    = ConsumerKey.Get(context);
            String sfdcConsumerSecret = ConsumerSecret.Get(context);
            String sfdcUserName       = UserName.Get(context);
            String sfdcPassword       = Password.Get(context);
            String sfdcSecurityToken  = SecurityToken.Get(context);

            String  SfdcloginPassword = sfdcPassword + sfdcSecurityToken;
            Boolean TestServer        = (ServerType == Type_of_Server.Test) ? true : false;

            var dictionaryForUrl = new Dictionary <String, String>
            {
                { "grant_type", "password" },
                { "client_id", sfdcConsumerkey },
                { "client_secret", sfdcConsumerSecret },
                { "username", sfdcUserName },
                { "password", SfdcloginPassword }
            };

            var task = (new CmdRestAPI(dictionaryForUrl, TestServer)).ExecuteAsync();
            var tcs  = new TaskCompletionSource <CmdRestAPI>(state);

            task.ContinueWith(t =>
            {
                if (t.IsFaulted)
                {
                    tcs.TrySetException(t.Exception.InnerExceptions);
                }
                else if (t.IsCanceled)
                {
                    tcs.TrySetCanceled();
                }
                else
                {
                    tcs.TrySetResult(t.Result);
                }
                if (callback != null)
                {
                    callback(tcs.Task);
                }
            });

            return(tcs.Task);
        }
示例#11
0
 private void ValidateTokenRequestState()
 {
     if (RequestTokenUrl.IsNullOrBlank())
     {
         throw new ArgumentException("You must specify a request token URL");
     }
     if (ConsumerKey.IsNullOrBlank())
     {
         throw new ArgumentException("You must specify a consumer key");
     }
     if (ConsumerSecret.IsNullOrBlank())
     {
         throw new ArgumentException("You must specify a consumer secret");
     }
 }
示例#12
0
        protected override void Execute(CodeActivityContext context)
        {
            try
            {
                service = new TwitterService(ConsumerKey.Get(context),
                                             ConsumerSecret.Get(context),
                                             AccessToken.Get(context),
                                             AccessSecret.Get(context));

                TwitterStatus status;
                if (ImagePath.Get(context) == null)
                {
                    // Send Tweet without Image
                    status = service.SendTweet(new SendTweetOptions {
                        Status = Message.Get(context)
                    });
                }
                else
                {
                    // Send Tweet with Image
                    MediaFile mf     = new MediaFile();
                    Stream    stream = new FileStream(ImagePath.Get(context), FileMode.Open);
                    mf.Content = stream;

                    var media = service.UploadMedia(new UploadMediaOptions {
                        Media = mf
                    });
                    var id = media.Media_Id;

                    List <string> ls = new List <string>();
                    ls.Add(id.ToString());

                    status = service.SendTweet(new SendTweetOptions
                    {
                        Status   = Message.Get(context),
                        MediaIds = ls,
                    });
                }

                // Capture Posted Tweet Id
                TweetId.Set(context, status.Id);
            }
            catch (Exception e)
            {
                TweetId.Set(context, e.Message);
            }
        }
示例#13
0
 private void ValidateClientAuthAccessRequestState()
 {
     if (AccessTokenUrl.IsNullOrBlank())
     {
         throw new ArgumentException("You must specify an access token URL");
     }
     if (ConsumerKey.IsNullOrBlank())
     {
         throw new ArgumentException("You must specify a consumer key");
     }
     if (ConsumerSecret.IsNullOrBlank())
     {
         throw new ArgumentException("You must specify a consumer secret");
     }
     if (ClientUsername.IsNullOrBlank() || ClientPassword.IsNullOrBlank())
     {
         throw new ArgumentException("You must specify user credentials");
     }
 }
示例#14
0
 private void ValidateAccessRequestState()
 {
     if (AccessTokenUrl.IsNullOrBlank())
     {
         throw new ArgumentException("You must specify an access token URL");
     }
     if (ConsumerKey.IsNullOrBlank())
     {
         throw new ArgumentException("You must specify a consumer key");
     }
     if (ConsumerSecret.IsNullOrBlank())
     {
         throw new ArgumentException("You must specify a consumer secret");
     }
     if (Token.IsNullOrBlank())
     {
         throw new ArgumentException("You must specify a token");
     }
 }
示例#15
0
        public OAuthToken RenewAccessToken(OAuthToken accessToken)
        {
            var client = new RestClient(_baseUrl)
            {
                Authenticator =
                    OAuth1Authenticator.ForAccessTokenRefresh(ConsumerKey, ConsumerSecret.To <string>(), accessToken.Token, accessToken.Secret, null)
            };

            var response = ExecuteRequest(client, new RestRequest("oauth/renew_access_token"));

            if (response.ResponseStatus != ResponseStatus.Completed || response.StatusCode != HttpStatusCode.OK)
            {
                throw new ETradeAuthorizationRenewFailed(
                          LocalizedStrings.Str3349Params.Put(response.StatusCode + ": " + response.StatusDescription));
            }

            var qs = HttpUtility.ParseQueryString(response.Content);

            var newToken = qs["oauth_token"];

            return(newToken == null ? accessToken : new OAuthToken(ConsumerKey, newToken, qs["oauth_token_secret"]));
        }
示例#16
0
        public OAuthToken GetRequestToken()
        {
            if (ConsumerKey.IsEmpty() || ConsumerSecret.IsEmpty())
            {
                throw new ETradeException(LocalizedStrings.Str3345);
            }

            var client = new RestClient(_baseUrl)
            {
                Authenticator = OAuth1Authenticator.ForRequestToken(ConsumerKey, ConsumerSecret.To <string>(), "oob")
            };

            var response = ExecuteRequest(client, new RestRequest("oauth/request_token"));

            if (response.ResponseStatus != ResponseStatus.Completed || response.StatusCode != HttpStatusCode.OK)
            {
                throw new ETradeAuthorizationFailedException(
                          LocalizedStrings.Str3346Params.Put(response.StatusCode + ": " + response.StatusDescription));
            }

            var qs = HttpUtility.ParseQueryString(response.Content);

            return(new OAuthToken(ConsumerKey, qs["oauth_token"], qs["oauth_token_secret"]));
        }
        protected override void Execute(NativeActivityContext context)
        {
            RestSharp.RestClient client     = new RestSharp.RestClient();
            MCser.SoapClient     soapClient = null;

            String ExistAuthToken  = "" + ExistingAuth.Get(context);
            String ExistServiceURL = "" + ExistingServ.Get(context);

            if (ExistAuthToken.Trim().Length > 1)
            {
                RespAuthToken  = ExistAuthToken.Trim();
                RespServiceURL = ExistServiceURL.Trim();
            }
            else
            {
                String  sfdcConsumerkey    = "";
                String  sfdcConsumerSecret = "";
                String  sfdcServiceURL     = "";
                String  sfdcUserName       = "";
                String  sfdcPassword       = "";
                Boolean EnvType            = (EnvironmentType == Type_of_Environment.Design_and_Test) ? true : false;
                if (EnvType)
                {
                    sfdcConsumerkey    = ConsumerKey.Get(context);
                    sfdcConsumerSecret = ConsumerSecret.Get(context);
                    sfdcServiceURL     = ServiceURL.Get(context);
                    sfdcUserName       = UserName.Get(context);
                    sfdcPassword       = Password.Get(context);
                }
                else
                {
                    sfdcConsumerkey    = ConsumerKeyProd.Get(context);
                    sfdcConsumerSecret = SecureStringToString(ConsumerSecretProd.Get(context));
                    sfdcServiceURL     = "" + SecureStringToString(ServiceURLProd.Get(context));
                    sfdcUserName       = UserNameProd.Get(context);
                    sfdcPassword       = SecureStringToString(PasswordProd.Get(context));
                }

                try
                {
                    client.BaseUrl = new Uri("https://auth.exacttargetapis.com/v1/requestToken");

                    var request2 = new RestRequest(Method.POST);
                    request2.RequestFormat = DataFormat.Json;
                    request2.AddParameter("clientId", sfdcConsumerkey);
                    request2.AddParameter("clientSecret", sfdcConsumerSecret);

                    JObject jsonObj = JObject.Parse(client.Post(request2).Content);
                    RespAuthToken = (String)jsonObj["accessToken"];
                    String ErrorType = "";
                    ErrorType = (String)jsonObj["error"];
                    String ErrorMsg = "";
                    ErrorMsg = (String)jsonObj["error_description"];


                    if ((RespAuthToken != null && RespAuthToken != "") && ErrorMsg == null)
                    {
                        BasicHttpsBinding binding = new BasicHttpsBinding();
                        binding.Name                   = "MyServicesSoap";
                        binding.CloseTimeout           = TimeSpan.FromMinutes(1);
                        binding.OpenTimeout            = TimeSpan.FromMinutes(1);
                        binding.ReceiveTimeout         = TimeSpan.FromMinutes(60);
                        binding.SendTimeout            = TimeSpan.FromMinutes(1);
                        binding.AllowCookies           = false;
                        binding.BypassProxyOnLocal     = false;
                        binding.HostNameComparisonMode = HostNameComparisonMode.StrongWildcard;
                        binding.MaxBufferSize          = 20000000;
                        binding.MaxBufferPoolSize      = 20000000;
                        binding.MaxReceivedMessageSize = 20000000;
                        binding.MessageEncoding        = WSMessageEncoding.Text;
                        binding.TextEncoding           = System.Text.Encoding.UTF8;
                        binding.TransferMode           = TransferMode.Buffered;
                        binding.UseDefaultWebProxy     = true;

                        binding.ReaderQuotas.MaxDepth = 32;
                        binding.ReaderQuotas.MaxStringContentLength = 8192;
                        binding.ReaderQuotas.MaxArrayLength         = 16384;
                        binding.ReaderQuotas.MaxBytesPerRead        = 4096;
                        binding.ReaderQuotas.MaxNameTableCharCount  = 16384;

                        binding.Security.Mode = BasicHttpsSecurityMode.Transport;
                        binding.Security.Transport.ClientCredentialType = HttpClientCredentialType.None;
                        binding.Security.Transport.ProxyCredentialType  = HttpProxyCredentialType.None;
                        binding.Security.Transport.Realm = "";
                        binding.Security.Message.ClientCredentialType = BasicHttpMessageCredentialType.UserName;
                        binding.Security.Message.AlgorithmSuite       = System.ServiceModel.Security.SecurityAlgorithmSuite.Default;


                        String          endpointStr = "https://webservice.s10.exacttarget.com/Service.asmx";
                        EndpointAddress endpoint    = new EndpointAddress(endpointStr);
                        soapClient = new MCser.SoapClient(binding, endpoint);
                        soapClient.ClientCredentials.UserName.UserName = sfdcUserName;
                        soapClient.ClientCredentials.UserName.Password = sfdcPassword;
                        soapClient.Endpoint.EndpointBehaviors.Add(new FuelOAuthHeaderBehavior(RespAuthToken));
                        RespServiceURL = sfdcServiceURL;
                    }
                    else if (RespAuthToken == null && (ErrorMsg != "" && ErrorMsg != null))
                    {
                        RespAuthToken  = "Error Type: " + ErrorType;
                        RespServiceURL = "Error: " + ErrorMsg;
                    }
                }
                catch (Exception ex)
                {
                    RespAuthToken  = "Error Type: " + ex.ToString();
                    RespServiceURL = "Error: " + ex.ToString();
                }
            }

            var salesForceProperty = new SalesForceProperty(soapClient, true, RespAuthToken, RespServiceURL);

            if (Body != null)
            {
                context.ScheduleAction <SalesForceProperty>(Body, salesForceProperty, OnCompleted, OnFaulted);
            }
        }
示例#18
0
        /// <summary>
        ///		Obtiene la firma a partir de los datos
        /// </summary>
        private string GetSignature(string strDataToSign)
        {
            HMACSHA1 objSha1 = new HMACSHA1(Encoding.ASCII.GetBytes(string.Format("{0}&{1}", ConsumerSecret.UrlEncode(), AccessTokenSecret.UrlEncode())));

            // Devuelve la firma
            return(Convert.ToBase64String(objSha1.ComputeHash(Encoding.ASCII.GetBytes(strDataToSign.ToString()))));
        }
示例#19
0
 public void SetAuthenticator(OAuthToken accessToken)
 {
     _authenticator = accessToken == null
                                                          ? null
                                                          : OAuth1Authenticator.ForProtectedResource(ConsumerKey, ConsumerSecret.To <string>(), accessToken.Token, accessToken.Secret);
 }