private bool PushFeedToDiscuzCloud(TopicInfo topic, PostInfo post, AttachmentInfo[] attachments, int feedStatus) { //如果传入数据不合法,以及主题需要审核或者是回复可见的,需要付费的,就不推送到云平台 if (topic == null || post == null || topic.Tid < 0 || topic.Posterid < 0 || post.Tid != topic.Tid || post.Pid < 0 || topic.Displayorder < 0 || topic.Hide == 1 || topic.Price > 0 || post.Invisible != 0 || feedStatus < 0 || feedStatus > 3) { return(false); } UserConnectInfo userConnectInfo = DiscuzCloud.GetUserConnectInfo(topic.Posterid); if (userConnectInfo == null || feedStatus == 0) { return(false); } //设置用户自选的操作状态 userConnectInfo.AllowPushFeed = feedStatus; if (DiscuzCloud.PushFeedToDiscuzCloud(topic, post, attachments, userConnectInfo, ip, rootUrl)) { TopicPushFeedInfo feedInfo = new TopicPushFeedInfo(); feedInfo.TopicId = topic.Tid; feedInfo.Uid = topic.Posterid; feedInfo.AuthorToken = userConnectInfo.Token; feedInfo.AuthorSecret = userConnectInfo.Secret; DiscuzCloud.CreateTopicPushFeedLog(feedInfo); return(true); } return(false); }
private bool PushFeedToDiscuzCloud(TopicInfo topic, PostInfo post, AttachmentInfo[] attachments, bool feedStatus) { if (topic == null || post == null || topic.Tid < 0 || topic.Posterid < 0 || post.Tid != topic.Tid || post.Pid < 0 || topic.Displayorder < 0 || topic.Hide == 1 || topic.Price > 0 || post.Invisible != 0 || !feedStatus) { return(false); } var userConnectInfo = DiscuzCloud.GetUserConnectInfo(topic.Posterid); if (userConnectInfo == null || !feedStatus) { return(false); } userConnectInfo.AllowPushFeed = feedStatus; if (DiscuzCloud.PushFeedToDiscuzCloud(topic, post, attachments, userConnectInfo, this.ip, this.rootUrl)) { DiscuzCloud.CreateTopicPushFeedLog(new PushfeedLog { ID = topic.Tid, Uid = topic.Posterid, AuthorToken = userConnectInfo.Token, AuthorSecret = userConnectInfo.Secret }); return(true); } return(false); }
/// <summary> /// 解除用户QQ绑定 /// </summary> /// <param name="openId"></param> /// <returns></returns> public static int UnbindUserConnectInfo(string openId) { DiscuzCloudConfigInfo config = DiscuzCloudConfigs.GetConfig(); UserConnectInfo userConnectInfo = DiscuzCloud.GetUserConnectInfo(openId); if (userConnectInfo == null) { return(-1); } List <DiscuzOAuthParameter> paramList = new List <DiscuzOAuthParameter>(); paramList.Add(new DiscuzOAuthParameter("client_ip", DNTRequest.GetIP())); DiscuzOAuth oauth = new DiscuzOAuth(); string queryStr = ""; string unbindUrl = oauth.GetOAuthUrl(UNBIND_URL, "POST", config.Connectappid, config.Connectappkey, userConnectInfo.Token, userConnectInfo.Secret, "", "", paramList, out queryStr); string response = Utils.GetHttpWebResponse(unbindUrl, queryStr); DeleteUserConnectInfo(openId); Utils.WriteCookie("bindconnect", ""); return(1); }
/// <summary> /// 获取当前用户发送feed到云平台的设置(0不发送,1发送到Qzone,2发送到微博,3都发送) /// </summary> /// <param name="userId"></param> /// <returns></returns> public static int GetOnlineUserCloudFeedStatus(int userId) { string status = Utils.GetCookie("cloud_feed_status"); if (!string.IsNullOrEmpty(status)) { string[] statusArray = status.Split('|'); if (statusArray.Length == 2 && userId == Utils.StrToInt(statusArray[0], -1)) { return(Utils.StrToInt(statusArray[1], 0)); } } UserConnectInfo connectInfo = DiscuzCloud.GetUserConnectInfo(userId); if (connectInfo != null) { Utils.WriteCookie("cloud_feed_status", string.Format("{0}|{1}", userId, connectInfo.AllowPushFeed)); return(connectInfo.AllowPushFeed); } return(0); }
public static bool GetOnlineUserCloudFeedStatus(int userId) { string cookie = Utils.GetCookie("cloud_feed_status"); if (!string.IsNullOrEmpty(cookie)) { string[] array = cookie.Split('|'); if (array.Length == 2 && userId == TypeConverter.StrToInt(array[0], -1)) { return(TypeConverter.IntStringToBoolean(array[1])); } } var userConnectInfo = DiscuzCloud.GetUserConnectInfo(userId); if (userConnectInfo != null) { Utils.WriteCookie("cloud_feed_status", string.Format("{0}|{1}", userId, Convert.ToInt32(userConnectInfo.AllowPushFeed))); return(userConnectInfo.AllowPushFeed); } return(false); }
public static int UnbindUserConnectInfo(string openId) { DiscuzCloudConfigInfo config = DiscuzCloudConfigInfo.Current; UserConnect userConnectInfo = DiscuzCloud.GetUserConnectInfo(openId); if (userConnectInfo == null) { return(-1); } List <DiscuzOAuthParameter> list = new List <DiscuzOAuthParameter>(); list.Add(new DiscuzOAuthParameter("client_ip", DNTRequest.GetIP())); DiscuzOAuth discuzOAuth = new DiscuzOAuth(); string postData = ""; string oAuthUrl = discuzOAuth.GetOAuthUrl(UNBIND_URL, "POST", config.Connectappid, config.Connectappkey, userConnectInfo.Token, userConnectInfo.Secret, "", "", list, out postData); Utils.GetHttpWebResponse(oAuthUrl, postData); DiscuzCloud.DeleteUserConnectInfo(openId); Utils.WriteCookie("bindconnect", ""); return(1); }
public static bool IsBindConnect(int userId) { return(DiscuzCloudConfigInfo.Current.Connectenabled != 0 && userId >= 1 && DiscuzCloud.GetUserConnectInfo(userId) != null); }