/// <summary> /// 更新用户资料同步 /// </summary> /// <param name="uId"></param> /// <param name="signature"></param> /// <param name="apiKey">操作的应用站点id,论坛调用请添空字符串</param> /// <returns></returns> public static void UpdateProfile(int uId, string userName, string apiKey) { List <DiscuzParam> paramList = new List <DiscuzParam>(); paramList.Add(DiscuzParam.Create("uid", uId)); paramList.Add(DiscuzParam.Create("user_name", userName)); SendRequest(ASYNC_UPDATE_PROFILE, paramList.ToArray(), apiKey); }
/// <summary> /// 更新密码同步 /// </summary> /// <param name="userName"></param> /// <param name="password"></param> /// <param name="apiKey">操作的应用站点id,论坛调用请添空字符串</param> /// <returns></returns> public static void UpdatePassword(string userName, string password, string apiKey) { List <DiscuzParam> paramList = new List <DiscuzParam>(); paramList.Add(DiscuzParam.Create("user_name", userName)); paramList.Add(DiscuzParam.Create("password", password)); SendRequest(ASYNC_UPDATE_PASSWORD, paramList.ToArray(), apiKey); }
/// <summary> /// 删除用户同步 /// </summary> /// <param name="uIds">逗号分隔的uid列表字符串</param> /// <param name="apiKey">操作的应用站点id,论坛调用请添空字符串</param> /// <returns></returns> public static void DeleteUsers(string uIds, string apiKey) { List <DiscuzParam> paramList = new List <DiscuzParam>(); paramList.Add(DiscuzParam.Create("uids", uIds)); SendRequest(ASYNC_DELETE_USER, paramList.ToArray(), apiKey); }
/// <summary> /// 用户注册 /// </summary> /// <param name="uId">用户ID</param> /// <param name="userName">用户名</param> /// <param name="password">跟数据库一致的密码</param> public static void UserRegister(int uId, string userName, string password, string apiKey) { List <DiscuzParam> paramList = new List <DiscuzParam>(); paramList.Add(DiscuzParam.Create("uid", uId)); paramList.Add(DiscuzParam.Create("user_name", userName)); paramList.Add(DiscuzParam.Create("password", password)); SendRequest(ASYNC_REGISTER, paramList.ToArray(), apiKey); }
/// <summary> /// 更新签名同步 /// </summary> /// <param name="uId"></param> /// <param name="signature"></param> /// <param name="apiKey">操作的应用站点id,论坛调用请添空字符串</param> /// <returns></returns> public static void UpdateSignature(int uId, string userName, string signature, string apiKey) { List <DiscuzParam> paramList = new List <DiscuzParam>(); paramList.Add(DiscuzParam.Create("uid", uId)); paramList.Add(DiscuzParam.Create("user_name", userName)); paramList.Add(DiscuzParam.Create("signature", signature)); SendRequest(ASYNC_UPDATE_SIGNATURE, paramList.ToArray(), apiKey); }
/// <summary> /// 更新积分同步 /// </summary> /// <param name="uId"></param> /// <param name="creditIndex">扩展积分序号</param> /// <param name="amount"></param> /// <param name="apiKey">操作的应用站点id,论坛调用请添空字符串</param> /// <returns></returns> public static void UpdateCredits(int uId, int creditIndex, string amount, string apiKey) { List <DiscuzParam> paramList = new List <DiscuzParam>(); paramList.Add(DiscuzParam.Create("uid", uId)); paramList.Add(DiscuzParam.Create("credit_index", creditIndex.ToString())); paramList.Add(DiscuzParam.Create("amount", amount)); SendRequest(ASYNC_UPDATE_CREDITS, paramList.ToArray(), apiKey); }
/// <summary> /// 修改用户名同步 /// </summary> /// <param name="uId"></param> /// <param name="oldUserName"></param> /// <param name="newUserName"></param> /// <param name="apiKey">操作的应用站点id,论坛调用请添空字符串</param> /// <returns></returns> public static void RenameUser(int uId, string oldUserName, string newUserName, string apiKey) { List <DiscuzParam> paramList = new List <DiscuzParam>(); paramList.Add(DiscuzParam.Create("uid", uId)); paramList.Add(DiscuzParam.Create("old_user_name", oldUserName)); paramList.Add(DiscuzParam.Create("new_user_name", newUserName)); SendRequest(ASYNC_RENAME_USER, paramList.ToArray(), apiKey); }
/// <summary> /// 新主题同步 /// </summary> /// <param name="topicId">主题id</param> /// <param name="title">标题</param> /// <param name="author">作者</param> /// <param name="authorId">作者uid</param> /// <param name="fid">版块id</param> /// <param name="apiKey">操作的应用站点id,论坛调用请添空字符串</param> public static void NewTopic(string topicId, string title, string author, string authorId, string fid, string apiKey) { List <DiscuzParam> paramList = new List <DiscuzParam>(); paramList.Add(DiscuzParam.Create("tid", topicId)); paramList.Add(DiscuzParam.Create("title", title)); paramList.Add(DiscuzParam.Create("author", author)); paramList.Add(DiscuzParam.Create("author_id", authorId)); paramList.Add(DiscuzParam.Create("fid", fid)); SendRequest(ASYNC_NEW_TOPIC, paramList.ToArray(), apiKey); }
/// <summary> /// 回复同步 /// </summary> /// <param name="postId"></param> /// <param name="topicId"></param> /// <param name="topicTitle"></param> /// <param name="poster"></param> /// <param name="posterId"></param> /// <param name="fid"></param> /// <param name="apiKey">操作的应用站点id,论坛调用请添空字符串</param> public static void Reply(string postId, string topicId, string topicTitle, string poster, string posterId, string fid, string apiKey) { List <DiscuzParam> paramList = new List <DiscuzParam>(); paramList.Add(DiscuzParam.Create("pid", postId)); paramList.Add(DiscuzParam.Create("tid", topicId)); paramList.Add(DiscuzParam.Create("topic_title", topicTitle)); paramList.Add(DiscuzParam.Create("poster", poster)); paramList.Add(DiscuzParam.Create("poster_id", posterId)); paramList.Add(DiscuzParam.Create("fid", fid)); SendRequest(ASYNC_REPLY, paramList.ToArray(), apiKey); }
/// <summary> /// 获得同步退出登录脚本 /// </summary> /// <param name="uId"></param> /// <returns></returns> public static string GetLogoutScript(int uId) { StringBuilder builder = new StringBuilder(); ApplicationInfoCollection appCollection = GetAsyncTarget(ASYNC_LOGOUT); List <DiscuzParam> paramList = new List <DiscuzParam>(); paramList.Add(DiscuzParam.Create("uid", uId)); foreach (ApplicationInfo appInfo in appCollection) { builder.AppendFormat("<script src=\"{0}\" reload=\"1\"></script>", GetUrl(appInfo.SyncUrl, appInfo.Secret, ASYNC_LOGOUT, paramList.ToArray())); } return(builder.ToString()); }
/// <summary> /// 将参数绑定到url /// </summary> /// <param name="asyncUrl"></param> /// <param name="data"></param> /// <returns></returns> private static string GetUrl(string asyncUrl, string secret, string action, DiscuzParam[] parameters) { List <DiscuzParam> list = new List <DiscuzParam>(parameters); list.Add(DiscuzParam.Create("time", DiscuzMethodes.Time())); list.Add(DiscuzParam.Create("action", action)); list.Sort(); StringBuilder values = new StringBuilder(); foreach (DiscuzParam param in list) { if (!string.IsNullOrEmpty(param.Value)) { values.Append(param.ToString()); } } values.Append(secret); byte[] md5_result = MD5.Create().ComputeHash(Encoding.UTF8.GetBytes(values.ToString())); StringBuilder sig_builder = new StringBuilder(); foreach (byte b in md5_result) { sig_builder.Append(b.ToString("x2")); } list.Add(DiscuzParam.Create("sig", sig_builder.ToString())); StringBuilder builder = new StringBuilder(); for (int i = 0; i < list.Count; i++) { if (i > 0) { builder.Append("&"); } builder.Append(list[i].ToEncodedString()); } return(string.Format("{0}?{1}", asyncUrl, builder.ToString())); }