示例#1
0
        public static OAuthTicket FromAuthCode(string authcode, string clientid, string clientsecret, string redirecturi)
        {
            var req     = HTTPHelper.CreateRequest(null, OAuthTokenRequestUri);
            var reqdata = new
            {
                code          = authcode,
                client_id     = clientid,
                client_secret = clientsecret,
                redirect_uri  = redirecturi,
                grant_type    = "authorization_code"
            };

            var respdata = HTTPHelper.ToJson(HTTPHelper.SendUrlEncodedPostData(req, reqdata));

            return(new OAuthTicket
            {
                ClientId = clientid,
                ClientSecret = clientsecret,
                RedirectUri = redirecturi,
                _RefreshToken = respdata.refresh_token,
                _AccessToken = respdata.access_token,
                _TokenType = respdata.token_type,
                AccessTokenExpires = DateTime.Now.Add(new TimeSpan((respdata.expires_in - 60) * 10000000))
            });
        }
示例#2
0
        protected void RefreshAuthToken()
        {
            lock (AccessTokenLock)
            {
                if (AccessTokenExpires < DateTime.Now)
                {
                    var req     = HTTPHelper.CreateRequest(null, OAuthTokenRequestUri);
                    var reqdata = new
                    {
                        refresh_token = RefreshToken,
                        client_id     = ClientId,
                        client_secret = ClientSecret,
                        grant_type    = "refresh_token"
                    };

                    var respdata = HTTPHelper.ToJson(HTTPHelper.SendUrlEncodedPostData(req, reqdata));

                    _AccessToken       = respdata.access_token;
                    _TokenType         = respdata.token_type;
                    AccessTokenExpires = DateTime.Now.Add(new TimeSpan((respdata.expires_in - 60) * 10000000));
                }
            }
        }