/// <summary> /// 构造函数,用于用户已经完成授权后,将OAuthToken持久化保存后,使用这个函数从持久化介质中获取到的 /// OAuthToken,进行后续的API调用。 /// </summary> /// <param name="oAuthToken"></param> public QOpenClient(OAuthToken oAuthToken) { this._oAuthToken = oAuthToken; var context = new QzoneContext(oAuthToken); restApi = new RestApi(context); }
private void Init(string oAuthToken, string oAuthTokenSecret, string openId, QzoneContext context) { OAuthTokenKey = oAuthToken; OAuthTokenSecret = oAuthTokenSecret; OpenID = openId; restApi = new RestApi(context); }
/// <summary> /// 构造函数,初始化访问环境 /// </summary> /// <param name="consumerKey"></param> /// <param name="consumerSecret"></param> /// <param name="oAuthToken"></param> /// <param name="oAuthTokenSecret"></param> /// <param name="authorized_verifier"></param> /// <param name="isApi"></param> /// <param name="openId"></param> public Qzone(string consumerKey, string consumerSecret, string oAuthToken, string oAuthTokenSecret, string authorized_verifier, bool isApi = false, string openId = "") { if (string.IsNullOrEmpty(consumerKey) || string.IsNullOrEmpty(consumerSecret) || string.IsNullOrEmpty(oAuthToken) || string.IsNullOrEmpty(oAuthTokenSecret)) { throw new ArgumentNullException("参数consumerKey、consumerSecret、oAuthToken、oAuthTokenSecret不能为空"); } if (isApi) { if (string.IsNullOrEmpty(openId)) { throw new ArgumentNullException("访问Qzone的api要求带获取到的token(access token)、token secret(access token secret)、openid。"); } } if (!isApi) { QzoneContext context = new QzoneContext(consumerKey, consumerSecret); var accessToken = context.GetAccessToken(oAuthToken, oAuthTokenSecret, authorized_verifier); context.OAuthTokenKey = accessToken.TokenKey; context.OAuthTokenSecret = accessToken.TokenSecret; Init(accessToken.TokenKey, accessToken.TokenSecret, accessToken.Openid, context); } else { QzoneContext context = new QzoneContext(consumerKey, consumerSecret, oAuthToken, oAuthTokenSecret, openId); Init(oAuthToken, oAuthTokenSecret, openId, context); } }
/// <summary> /// 构造函数,用于用户接受授权后使用Authorization Code获取AccessToken /// </summary> /// <param name="verifierCode">Authorization Code(注意此code会在10分钟内过期)。</param> /// <param name="state">client端的状态值。用于第三方应用防止CSRF攻击,成功授权后回调时会原样带回</param> public QOpenClient(string verifierCode, string state) { var context = new QzoneContext(verifierCode); if (!string.IsNullOrEmpty(verifierCode)) { this.OAuthToken = context.GetAccessToken(state); } restApi = new RestApi(context); }
public string GetAuthorizationUrl(out QoAuthKey oAuthKey) { string scope = "get_user_info,add_share,list_album,upload_pic,check_page_fans,add_t,add_pic_t,del_t,get_repost_list,get_info,get_other_info,get_fanslist,get_idolist,add_idol,del_idol,add_one_blog,add_topic,get_tenpay_addr"; oAuthKey = new QoAuthKey(); QzoneContext context = new QzoneContext(); context.Config.GetAppSecret(); return(context.GetAuthorizationUrl(oAuthKey.State, scope)); }
public ActionResult LogInQQ() { var context = new QzoneContext(); string state = Guid.NewGuid().ToString().Replace("-", ""); Session["requeststate"] = state; string scope = "get_user_info,add_share,list_album,upload_pic,check_page_fans,add_t,add_pic_t,del_t,get_repost_list,get_info,get_other_info,get_fanslist,get_idolist,add_idol,del_idol,add_one_blog,add_topic,get_tenpay_addr"; var authenticationUrl = context.GetAuthorizationUrl(state, scope); return(new RedirectResult(authenticationUrl)); }
public string RequestAuthentication() { var storeScope = this.GetActiveStoreScopeConfiguration(_storeService, _workContext); var qqExternalAuthSettings = _settingService.LoadSetting <QQExternalAuthSettings>(storeScope); var context = new QzoneContext(string.Empty, new QQConnectConfig(qqExternalAuthSettings.AppKey, qqExternalAuthSettings.AppSecret, qqExternalAuthSettings.CallBackURI, qqExternalAuthSettings.AuthorizeURL)); string state = Guid.NewGuid().ToString().Replace("-", ""); string scope = "get_user_info,add_share,list_album,upload_pic,check_page_fans,add_t,add_pic_t,del_t,get_repost_list,get_info,get_other_info,get_fanslist,get_idolist,add_idol,del_idol,add_one_blog,add_topic,get_tenpay_addr"; var authenticationUrl = context.GetAuthorizationUrl(state, scope); Session["requeststate"] = state; return(authenticationUrl); }
/// <summary> /// 获取授权登陆地址 /// </summary> /// <returns></returns> public string GetAuthenticationUrl(string guid) { string url = string.Empty; if (!string.IsNullOrEmpty(guid)) { this._state = guid; var content = new QzoneContext(); url = content.GetAuthorizationUrl(this._state, this._scope); } return(url); }
private void GetRequestToken() { var context = new QzoneContext(); string state = Guid.NewGuid().ToString().Replace("-", ""); string scope = "get_user_info,add_share,list_album,upload_pic,check_page_fans,add_t,add_pic_t,del_t,get_repost_list,get_info,get_other_info,get_fanslist,get_idolist,add_idol,del_idol,add_one_blog,add_topic,get_tenpay_addr"; //string scope = "get_user_info"; var authenticationUrl = context.GetAuthorizationUrl(state, scope); //request token, request token secret 需要保存起来 //在demo演示中,直接保存在全局变量中.真实情况需要网站自己处理 Session["requeststate"] = state; Response.Redirect(authenticationUrl); }
/// <summary> /// 构造函数,初始化访问QQ互联API的上下文数据 /// </summary> /// <param name="context"></param> public RestApi(QzoneContext context) { this.context = context; this._requestHelper = new RequestHelper(); _restClient = new RestClient(Endpoints.ApiBaseUrl); }