コード例 #1
0
        //2.获取Token
        #region 请求参数

        /*
         * HTTP请求方式:POST
         * 请求参数
         *  参数          必选	类型及范围	说明
         * client_id	    true	string	申请应用时分配的AppKey。
         * client_secret	true	string	申请应用时分配的AppSecret。
         * grant_type	    true	string	请求的类型,填写authorization_code
         *
         * grant_type为authorization_code时
         *  参数            必选	    类型及范围	说明
         * code	        true	string	    调用authorize获得的code值。
         * redirect_uri	true	string	    回调地址,需需与注册应用里的回调地址一致。
         * 返回值字段
         * 参数            字段类型     字段说明
         * access_token	string	    用于调用access_token,接口获取授权后的access token。
         * expires_in	    string	    access_token的生命周期,单位是秒数。
         * remind_in	    string	    access_token的生命周期(该参数即将废弃,开发者请使用expires_in)。
         * uid	            string	    当前授权用户的UID。
         */
        #endregion

        #region 获取Token
        /// <summary>
        /// 获取Token
        /// </summary>
        /// <param name="code"></param>
        /// <returns></returns>
        public Dictionary <string, object> Token(string code)
        {
            try
            {
                Dictionary <string, object> result = Conf.PostDictionary(TokenUrl, Conf.Sina_Client_ID, Conf.Sina_Client_Secret, Conf.Sina_Callback_URL, code);
                if (result != null && result.Count > 0)
                {
                    this.Access_Token  = result["access_token"].ToString();
                    this.Expires_In    = long.Parse(result["expires_in"].ToString());
                    this.Token_Type    = result["token_type"].ToString();
                    this.Refresh_Token = result["refresh_token"].ToString();
                }
                return(result);
            }
            catch (Exception ex)
            {
                return(null);
            }
        }
コード例 #2
0
 //2.获取Token
 #region 获取Token
 /// <summary>
 /// 获取Token
 /// </summary>
 /// <param name="code">调用authorize获得的code值</param>
 /// <param name="state">成功授权后回调时会原样带回client端的状态值</param>
 /// <returns></returns>
 public string Token(string code, string state)
 {
     try
     {
         //判断client端的状态值,用于第三方应用防止CSRF攻击
         //if (State != state)
         //{
         //	return null;
         //}
         Dictionary <string, object> result = Conf.PostDictionary(TokenUrl, Conf.Sina_Client_ID, Conf.Sina_Client_Secret, Conf.Sina_Callback_URL, code);
         if (result != null && result.Count > 0)
         {
             this.Access_Token = result["access_token"].ToString();              //接口获取授权后的access token
             this.Expires_In   = long.Parse(result["expires_in"].ToString());    //access_token的生命周期,单位是秒数
             this.UID          = long.Parse(result["uid"].ToString());           //当前授权用户的UID
         }
         return(this.Access_Token);
     }
     catch (Exception ex)
     {
         throw ex;
     }
 }