コード例 #1
0
        public virtual OAuthAccessToken GetAccessToken(OAuthRequestToken requestToken, string verifier)
        {
            var args = new FunctionArguments
            {
                ConsumerKey    = _consumerKey,
                ConsumerSecret = _consumerSecret,
                Token          = requestToken.Token,
                TokenSecret    = requestToken.TokenSecret,
                Verifier       = verifier
            };

            var request  = _accessTokenQuery.Invoke(args);
            var response = _oauth.Request(request);

            SetResponse(response);

            var query       = HttpUtility.ParseQueryString(response.Content);
            var accessToken = new OAuthAccessToken
            {
                Token       = query["oauth_token"] ?? "?",
                TokenSecret = query["oauth_token_secret"] ?? "?",
                UserId      = Convert.ToInt64(query["user_id"] ?? "0"),
                ScreenName  = query["screen_name"] ?? "?"
            };

            return(accessToken);
        }
コード例 #2
0
        public virtual OAuthAccessToken GetAccessTokenWithXAuth(string username, string password)
        {
            var args = new FunctionArguments
            {
                ConsumerKey    = _consumerKey,
                ConsumerSecret = _consumerSecret,
                Username       = username,
                Password       = password
            };

            var request  = _xAuthQuery.Invoke(args);
            var response = _oauth.Request(request);

            SetResponse(response);

            var query       = HttpUtility.ParseQueryString(response.Content);
            var accessToken = new OAuthAccessToken
            {
                Token       = query["oauth_token"] ?? "?",
                TokenSecret = query["oauth_token_secret"] ?? "?",
                UserId      = Convert.ToInt64(query["user_id"] ?? "0"),
                ScreenName  = query["screen_name"] ?? "?"
            };

            return(accessToken);
        }
コード例 #3
0
        public virtual OAuthRequestToken GetRequestToken(string callback)
        {
            var args = new FunctionArguments
            {
                ConsumerKey    = _consumerKey,
                ConsumerSecret = _consumerSecret
            };

            var request = _requestTokenQuery.Invoke(args);

            if (!callback.IsNullOrBlank())
            {
                request.AddParameter("oauth_callback", callback);
            }

            var response = _oauth.Request(request);

            SetResponse(response);

            var query = HttpUtility.ParseQueryString(response.Content);
            var oauth = new OAuthRequestToken
            {
                Token                  = query["oauth_token"] ?? "?",
                TokenSecret            = query["oauth_token_secret"] ?? "?",
                OAuthCallbackConfirmed = Convert.ToBoolean(query["oauth_callback_confirmed"] ?? "false")
            };

            return(oauth);
        }
コード例 #4
0
        public virtual void GetAccessToken(OAuthRequestToken requestToken, string verifier, Action <OAuthAccessToken, TwitterResponse> action)
        {
            var args = new FunctionArguments
            {
                ConsumerKey    = _consumerKey,
                ConsumerSecret = _consumerSecret,
                Token          = requestToken.Token,
                TokenSecret    = requestToken.TokenSecret,
                Verifier       = verifier
            };

            var request = _accessTokenQuery.Invoke(args);

            _oauth.BeginRequest(request, (req, resp, state) =>
            {
                Exception exception;
                var entity = TryAsyncResponse(() =>
                {
                    if (resp == null || resp.StatusCode != HttpStatusCode.OK)
                    {
                        return(null);
                    }

#if WINRT
                    var query       = new Windows.Foundation.WwwFormUrlDecoder(resp.Content);
                    var accessToken = new OAuthAccessToken
                    {
                        Token       = query.GetFirstValueByName("oauth_token") ?? "?",
                        TokenSecret = query.GetFirstValueByName("oauth_token_secret") ?? "?",
                        UserId      = Convert.ToInt64(query.GetFirstValueByName("user_id") ?? "0"),
                        ScreenName  = query.GetFirstValueByName("screen_name") ?? "?"
                    };
#else
                    var query       = HttpUtility.ParseQueryString(resp.Content);
                    var accessToken = new OAuthAccessToken
                    {
                        Token       = query["oauth_token"] ?? "?",
                        TokenSecret = query["oauth_token_secret"] ?? "?",
                        UserId      = Convert.ToInt64(query["user_id"] ?? "0"),
                        ScreenName  = query["screen_name"] ?? "?"
                    };
#endif
                    return(accessToken);
                },
                                              out exception);

                action(entity, new TwitterResponse(resp, exception));
            }
                                );
        }
コード例 #5
0
        public virtual void GetRequestToken(string callback, Action <OAuthRequestToken, TwitterResponse> action)
        {
            var args = new FunctionArguments
            {
                ConsumerKey    = _consumerKey,
                ConsumerSecret = _consumerSecret
            };

            var request = _requestTokenQuery.Invoke(args);

            if (!callback.IsNullOrBlank())
            {
                request.AddParameter("oauth_callback", callback);
            }

            _oauth.BeginRequest(request,
                                (req, resp, state) =>
            {
                Exception exception;
                var entity = TryAsyncResponse(() =>
                {
                    if (resp == null || resp.StatusCode != HttpStatusCode.OK)
                    {
                        return(null);
                    }

#if WINRT
                    var query        = new Windows.Foundation.WwwFormUrlDecoder(resp.Content);
                    var requestToken = new OAuthRequestToken
                    {
                        Token                  = query.GetFirstValueByName("oauth_token") ?? "?",
                        TokenSecret            = query.GetFirstValueByName("oauth_token_secret") ?? "?",
                        OAuthCallbackConfirmed = Convert.ToBoolean(query.GetFirstValueByName("oauth_callback_confirmed") ?? "false")
                    };
#else
                    var query        = HttpUtility.ParseQueryString(resp.Content);
                    var requestToken = new OAuthRequestToken
                    {
                        Token                  = query["oauth_token"] ?? "?",
                        TokenSecret            = query["oauth_token_secret"] ?? "?",
                        OAuthCallbackConfirmed = Convert.ToBoolean(query["oauth_callback_confirmed"] ?? "false")
                    };
#endif
                    return(requestToken);
                },
                                              out exception);

                action(entity, new TwitterResponse(resp, exception));
            });
        }
コード例 #6
0
        public virtual void GetAccessTokenWithXAuth(string username, string password, Action <OAuthAccessToken, TwitterResponse> action)
        {
            var args = new FunctionArguments
            {
                ConsumerKey    = _consumerKey,
                ConsumerSecret = _consumerSecret,
                Username       = username,
                Password       = password
            };

            var request = _xAuthQuery.Invoke(args);

            _oauth.BeginRequest(request,
                                (req, resp, state) =>
            {
                Exception exception;
                var entity = TryAsyncResponse(() =>
                {
                    if (resp == null || resp.StatusCode != HttpStatusCode.OK)
                    {
                        return(null);
                    }

                    var query       = HttpUtility.ParseQueryString(resp.Content);
                    var accessToken = new OAuthAccessToken
                    {
                        Token       = query["oauth_token"] ?? "?",
                        TokenSecret = query["oauth_token_secret"] ?? "?",
                        UserId      = Convert.ToInt32(query["user_id"] ?? "0"),
                        ScreenName  = query["screen_name"] ?? "?"
                    };
                    return(accessToken);
                },
                                              out exception);

                action(entity, new TwitterResponse(resp, exception));
            }
                                );
        }