• 个人改造方法调用接口文档


    using Newtonsoft.Json;
    using System;
    using System.Collections.Generic;
    using System.IO;
    using System.Linq;
    using System.Net;
    using System.Security.Cryptography;
    using System.Text;
    using System.Web;
    
    namespace Import_and_export.Utils
    {
        public class RongCloudMS
        {
            #region private
            string appKey;
            string appSecret;
            string apiUrl = "http://api.cn.ronghub.com";
            public RongCloudMS(string appKey, string appSecret)
            {
                this.appKey = appKey;
                this.appSecret = appSecret;
            }
    
            #endregion
            #region   class model 返回类属性和消息类型属性
    
            //注册用户返回值类型
            /// <summary>
            /// 注册用户返回值数据类型
            /// </summary>
            public class TokenReslut
            {
                /// <summary>
                /// 返回码,200为正常
                /// </summary>
                [JsonProperty]
                int code;
    
                /// <summary>
                /// 用户Token,可以保存在应用内。
                /// </summary>
                [JsonProperty]
                String token;
    
                /// <summary>
                /// 用户Id,与输入的用户Id相同
                /// </summary>
                [JsonProperty]
                String userId;
    
                /// <summary>
                /// 错误信息
                /// </summary>
                [JsonProperty]
                String errorMessage;
                public TokenReslut(int code, String token, String userId, String errorMessage)
                {
                    this.code = code;
                    this.token = token;
                    this.userId = userId;
                    this.errorMessage = errorMessage;
                }
                public void SetCode(int code)
                {
                    this.code = code;
                }
                public int GetCode()
                {
                    return code;
                }
                public void SetToken(String token)
                {
                    this.token = token;
                }
                public String getToken()
                {
                    return token;
                }
                public void SetUserId(String userId)
                {
                    this.userId = userId;
                }
                public String GetUserId()
                {
                    return userId;
                }
                public void SetErrorMessage(String errorMessage)
                {
                    this.errorMessage = errorMessage;
                }
                public String GetErrorMessage()
                {
                    return errorMessage;
                }
    
                public String toString()
                {
                    return JsonConvert.SerializeObject(this);
                }
            }
    
            //接口返回值数据
            /// <summary>
            /// 正常接口返回值状态类型
            /// </summary>
            public class CodeSuccessReslut
            {
                [JsonProperty]
                int code;
    
                [JsonProperty]
                String errorMessage;
                public CodeSuccessReslut(int code, String errorMessage)
                {
                    this.code = code;
                    this.errorMessage = errorMessage;
                }
                public void setCode(int code)
                {
                    this.code = code;
                }
                public int getCode()
                {
                    return code;
                }
                public void setErrorMessage(String errorMessage)
                {
                    this.errorMessage = errorMessage;
                }
                public String getErrorMessage()
                {
                    return errorMessage;
                }
                public String toString()
                {
                    return JsonConvert.SerializeObject(this);
                }
            }
    
            //文字消息
            /// <summary>
            /// 文字消息类型
            /// </summary>
            public class TxtMsgRC : SendMessage
            {
                [JsonProperty]
                private String content = "";
                [JsonProperty]
                private String extra = "";
                private string typeRC = "RC:TxtMsg";
                public TxtMsgRC(String content, String extra)
                {
                    this.content = content;
                    this.extra = extra;
                }
                public string getType()
                {
                    return typeRC;
                }
                public string toString()
                {
                    JsonSerializerSettings jsetting = new JsonSerializerSettings();
                    jsetting.NullValueHandling = NullValueHandling.Ignore;
                    return JsonConvert.SerializeObject(this);
                }
            }
    
            //语音消息
            /// <summary>
            /// 语音消息类型
            /// </summary>
            public class VcMsgRC : SendMessage
            {
                [JsonProperty]
                private String content = "";
                [JsonProperty]
                private String extra = "";
                [JsonProperty]
                private long duration = 0L;
                private string typeRC = "RC:VcMsg";
                public VcMsgRC(String content, String extra, long duration)
                {
                    this.content = content;
                    this.extra = extra;
                    this.duration = duration;
                }
                public string getType()
                {
                    return typeRC;
                }
                public string toString()
                {
                    JsonSerializerSettings jsetting = new JsonSerializerSettings();
                    jsetting.NullValueHandling = NullValueHandling.Ignore;
                    return JsonConvert.SerializeObject(this);
                }
            }
    
            //图片消息
            /// <summary>
            /// 图片消息
            /// </summary>
            public class ImgMsgRC : SendMessage
            {
                [JsonProperty]
                private String content = "";
                [JsonProperty]
                private String extra = "";
                [JsonProperty]
                private String imageUri = "";
                private string typeRC = "RC:ImgMsg";
                public ImgMsgRC(String content, String extra, String imageUri)
                {
                    this.content = content;
                    this.extra = extra;
                    this.imageUri = imageUri;
                }
                public string getType()
                {
                    return typeRC;
                }
                public string toString()
                {
                    JsonSerializerSettings jsetting = new JsonSerializerSettings();
                    jsetting.NullValueHandling = NullValueHandling.Ignore;
                    return JsonConvert.SerializeObject(this);
                }
            }
    
            //图文消息
            /// <summary>
            /// 图文消息
            /// </summary>
            public class ImgTextMsgRC : SendMessage
            {
                [JsonProperty]
                private String content = "";
                [JsonProperty]
                private String extra = "";
                [JsonProperty]
                private String title = "";
                [JsonProperty]
                private String imageUri = "";
                [JsonProperty]
                private String url = "";
                private string typeRC = "RC:ImgTextMsg";
                public ImgTextMsgRC(String content, String extra, String title, String imageUri, String url)
                {
                    this.content = content;
                    this.extra = extra;
                    this.title = title;
                    this.imageUri = imageUri;
                    this.url = url;
                }
                public string getType()
                {
                    return typeRC;
                }
                public string toString()
                {
                    JsonSerializerSettings jsetting = new JsonSerializerSettings();
                    jsetting.NullValueHandling = NullValueHandling.Ignore;
                    return JsonConvert.SerializeObject(this);
                }
            }
    
            //位置消息
            /// <summary>
            /// 位置消息
            /// </summary>
            public class LBSMsgRC : SendMessage
            {
                [JsonProperty]
                private String content = "";
                [JsonProperty]
                private String extra = "";
                [JsonProperty]
                private double latitude = 0;
                [JsonProperty]
                private double longitude = 0;
                [JsonProperty]
                private String poi = "";
                private string typeRC = "RC:LBSMsg";
                public LBSMsgRC(String content, String extra, double latitude, double longitude, String poi)
                {
                    this.content = content;
                    this.extra = extra;
                    this.latitude = latitude;
                    this.longitude = longitude;
                    this.poi = poi;
                }
                public string getType()
                {
                    return typeRC;
                }
                public string toString()
                {
                    JsonSerializerSettings jsetting = new JsonSerializerSettings();
                    jsetting.NullValueHandling = NullValueHandling.Ignore;
                    return JsonConvert.SerializeObject(this);
                }
            }
    
    
            //文件消息
            /// <summary>
            /// 文件消息
            /// </summary>
            public class FileMsgRC : SendMessage
            {
                [JsonProperty]
                private String name = "";
                [JsonProperty]
                private int size = 0;
                [JsonProperty]
                private String type = "";
                [JsonProperty]
                private String fileUrl = "";
                private string typeRC = "RC:FileMsg";
                public FileMsgRC(string name, int size, string type, string fileUrl)
                {
                    this.name = name;
                    this.size = size;
                    this.type = type;
                    this.fileUrl = fileUrl;
                }
                public string getType()
                {
                    return typeRC;
                }
                public string toString()
                {
                    JsonSerializerSettings jsetting = new JsonSerializerSettings();
                    jsetting.NullValueHandling = NullValueHandling.Ignore;
                    return JsonConvert.SerializeObject(this);
                }
            }
    
            //推送消息类型
            public class TagObj
            {
                // 标签。(最多20个)
                [JsonProperty]
                String[] tag;
                // 如果填 userId 给 userId 发如果没有给 tag 发。(最多1000个)
                [JsonProperty]
                String[] userid;
                // true为全部,忽略上面的tag、userId。(必传)
                [JsonProperty]
                Boolean is_to_all;
    
                public TagObj(String[] tag, String[] userid, Boolean is_to_all)
                {
                    this.tag = tag;
                    this.userid = userid;
                    this.is_to_all = is_to_all;
                }
    
                /**
                 * 设置tag
                 *
                 */
                public void setTag(String[] tag)
                {
                    this.tag = tag;
                }
    
                /**
                 * 获取tag
                 *
                 * @return String[]
                 */
                public String[] getTag()
                {
                    return tag;
                }
    
                /**
                 * 设置userid
                 *
                 */
                public void setUserid(String[] userid)
                {
                    this.userid = userid;
                }
    
                /**
                 * 获取userid
                 *
                 * @return String[]
                 */
                public String[] getUserid()
                {
                    return userid;
                }
    
                /**
                 * 设置is_to_all
                 *
                 */
                public void setIs_to_all(Boolean is_to_all)
                {
                    this.is_to_all = is_to_all;
                }
    
                /**
                 * 获取is_to_all
                 *
                 * @return Boolean
                 */
                public Boolean getIs_to_all()
                {
                    return is_to_all;
                }
    
                public String toString()
                {
                    return JsonConvert.SerializeObject(this);
                }
            }
    
            public class MsgObj
            {
                // push 消息中的消息体。
                [JsonProperty]
                String content;
                // 聊天室名称。
                [JsonProperty]
                String objectName;
    
                public MsgObj(String content, String objectName)
                {
                    this.content = content;
                    this.objectName = objectName;
                }
    
                /**
                 * 设置content
                 *
                 */
                public void setContent(String content)
                {
                    this.content = content;
                }
    
                /**
                 * 获取content
                 *
                 * @return String
                 */
                public String getContent()
                {
                    return content;
                }
    
                /**
                 * 设置objectName
                 *
                 */
                public void setObjectName(String objectName)
                {
                    this.objectName = objectName;
                }
    
                /**
                 * 获取objectName
                 *
                 * @return String
                 */
                public String getObjectName()
                {
                    return objectName;
                }
    
                public String toString()
                {
                    return JsonConvert.SerializeObject(this);
                }
            }
    
            public class PlatformNotification
            {
                // 默认推送消息内容,如填写了 ios 或 android 下的 alert 时,则推送内容以对应平台系统的 alert 为准。(必传)
                [JsonProperty]
                String alert;
                // ios 或 android 不同平台下的附加信息,如果开发者自己需要,可以自己在 App 端进行解析。(非必传)
                [JsonProperty]
                Dictionary<String, String> extras;
    
                public PlatformNotification(String alert, Dictionary<String, String> extras)
                {
                    this.alert = alert;
                    this.extras = extras;
                }
    
                /**
                 * 设置alert
                 *
                 */
                public void setAlert(String alert)
                {
                    this.alert = alert;
                }
    
                /**
                 * 获取alert
                 *
                 * @return String
                 */
                public String getAlert()
                {
                    return alert;
                }
    
                /**
                 * 设置extras
                 *
                 */
                public void setExtras(Dictionary<String, String> extras)
                {
                    this.extras = extras;
                }
    
                /**
                 * 获取extras
                 *
                 * @return Map<String,String>
                 */
                public Dictionary<String, String> getExtras()
                {
                    return extras;
                }
    
                public String toString()
                {
                    return JsonConvert.SerializeObject(this);
                }
            }
    
            public class Notification
            {
                // 默认推送消息内容,如填写了 ios 或 android 下的 alert 时,则推送内容以对应平台系统的 alert 为准。(必传)
                [JsonProperty]
                String alert;
                // 设置 iOS 平台下的推送及附加信息。
                [JsonProperty]
                PlatformNotification ios;
                // 设置 Android 平台下的推送及附加信息。
                [JsonProperty]
                PlatformNotification android;
    
                public Notification(String alert, PlatformNotification ios, PlatformNotification android)
                {
                    this.alert = alert;
                    this.ios = ios;
                    this.android = android;
                }
    
                /**
                 * 设置alert
                 *
                 */
                public void setAlert(String alert)
                {
                    this.alert = alert;
                }
    
                /**
                 * 获取alert
                 *
                 * @return String
                 */
                public String getAlert()
                {
                    return alert;
                }
    
                /**
                 * 设置ios
                 *
                 */
                public void setIos(PlatformNotification ios)
                {
                    this.ios = ios;
                }
    
                /**
                 * 获取ios
                 *
                 * @return PlatformNotification
                 */
                public PlatformNotification getIos()
                {
                    return ios;
                }
    
                /**
                 * 设置android
                 *
                 */
                public void setAndroid(PlatformNotification android)
                {
                    this.android = android;
                }
    
                /**
                 * 获取android
                 *
                 * @return PlatformNotification
                 */
                public PlatformNotification getAndroid()
                {
                    return android;
                }
    
                public String toString()
                {
                    return JsonConvert.SerializeObject(this);
                }
            }
    
            public class PushMessage
            {
                // 目标操作系统。(iOS、Android)。(必传)
                [JsonProperty]
                String[] platform;
                // 发送人用户 Id。(必传)
                [JsonProperty]
                String fromuserid;
                // 推送条件,包括: tag 、 userid 、 is_to_all。(必传)
                [JsonProperty]
                TagObj audience;
                // true为全部,忽略上面的tag、userId。
                [JsonProperty]
                MsgObj message;
                // 按操作系统类型推送消息内容,如 platform 中设置了给 ios 和 android 系统推送消息,而在 notification 中只设置了 ios 的推送内容,则 android 的推送内容为最初 alert 设置的内容。
                [JsonProperty]
                Notification notification;
    
    
                public PushMessage(String[] platform, String fromuserid, TagObj audience, MsgObj message, Notification notification)
                {
                    this.platform = platform;
                    this.fromuserid = fromuserid;
                    this.audience = audience;
                    this.message = message;
                    this.notification = notification;
                }
    
                /**
                 * 设置platform
                 *
                 */
                public void setPlatform(String[] platform)
                {
                    this.platform = platform;
                }
    
                /**
                 * 获取platform
                 *
                 * @return String[]
                 */
                public String[] getPlatform()
                {
                    return platform;
                }
    
                /**
                 * 设置fromuserid
                 *
                 */
                public void setFromuserid(String fromuserid)
                {
                    this.fromuserid = fromuserid;
                }
    
                /**
                 * 获取fromuserid
                 *
                 * @return String
                 */
                public String getFromuserid()
                {
                    return fromuserid;
                }
    
                /**
                 * 设置audience
                 *
                 */
                public void setAudience(TagObj audience)
                {
                    this.audience = audience;
                }
    
                /**
                 * 获取audience
                 *
                 * @return TagObj
                 */
                public TagObj getAudience()
                {
                    return audience;
                }
    
                /**
                 * 设置message
                 *
                 */
                public void setMessage(MsgObj message)
                {
                    this.message = message;
                }
    
                /**
                 * 获取message
                 *
                 * @return MsgObj
                 */
                public MsgObj getMessage()
                {
                    return message;
                }
    
                /**
                 * 设置notification
                 *
                 */
                public void setNotification(Notification notification)
                {
                    this.notification = notification;
                }
    
                /**
                 * 获取notification
                 *
                 * @return Notification
                 */
                public Notification getNotification()
                {
                    return notification;
                }
    
                public String toString()
                {
                    return JsonConvert.SerializeObject(this);
                }
            }
    
            #endregion
    
            //群信息查询返回结果
            /// <summary>
            /// 群信息查询返回结果
            /// </summary>
            public class GroupUserQueryReslut
            {
                // 返回码,200 为正常。
                [JsonProperty]
                int code;
                // 群成员用户Id。
                [JsonProperty]
                String id;
                // 群成员列表。
                [JsonProperty]
                List<GroupUser> users;
    
                public GroupUserQueryReslut(int code, String id, List<GroupUser> users)
                {
                    this.code = code;
                    this.id = id;
                    this.users = users;
                }
    
                /**
                 * 设置code
                 *
                 */
                public void setCode(int code)
                {
                    this.code = code;
                }
    
                /**
                 * 获取code
                 *
                 * @return Integer
                 */
                public int getCode()
                {
                    return code;
                }
    
                /**
                 * 设置id
                 *
                 */
                public void setId(String id)
                {
                    this.id = id;
                }
    
                /**
                 * 获取id
                 *
                 * @return String
                 */
                public String getId()
                {
                    return id;
                }
    
                /**
                 * 设置users
                 *
                 */
                public void setUsers(List<GroupUser> users)
                {
                    this.users = users;
                }
    
                /**
                 * 获取users
                 *
                 * @return List<GroupUser>
                 */
                public List<GroupUser> getUsers()
                {
                    return users;
                }
    
                public String toString()
                {
                    return JsonConvert.SerializeObject(this);
                }
            }
    
            //群成员信息
            /// <summary>
            /// 群成员信息
            /// </summary>
            public class GroupUser
            {
                // 用户 Id。
                [JsonProperty]
                String id;
    
                public GroupUser(String id)
                {
                    this.id = id;
                }
    
                /**
                 * 设置id
                 *
                 */
                public void setId(String id)
                {
                    this.id = id;
                }
    
                /**
                 * 获取id
                 *
                 * @return String
                 */
                public String getId()
                {
                    return id;
                }
    
                public String toString()
                {
                    return JsonConvert.SerializeObject(this);
                }
            }
    
            RongHttpClient _rongHttpClient = new RongHttpClient();
            //注册用户
            /// <summary>
            /// 注册用户
            /// </summary>
            /// <param name="userId">用户Id</param>
            /// <param name="name">用户名称</param>
            /// <param name="portraitUri">用户头像</param>
            /// <returns></returns>
            public TokenReslut UserGetToken(string userId, string name, string portraitUri)
            {
    
                if (userId == null)
                {
                    throw new ArgumentNullException("Paramer 'userId' is required");
                }
    
                if (name == null)
                {
                    throw new ArgumentNullException("Paramer 'name' is required");
                }
    
                if (portraitUri == null)
                {
                    throw new ArgumentNullException("Paramer 'portraitUri' is required");
                }
    
                String postStr = "";
                postStr += "userId=" + HttpUtility.UrlEncode(userId == null ? "" : userId, Encoding.UTF8) + "&";
                postStr += "name=" + HttpUtility.UrlEncode(name == null ? "" : name, Encoding.UTF8) + "&";
                postStr += "portraitUri=" + HttpUtility.UrlEncode(portraitUri == null ? "" : portraitUri, Encoding.UTF8) + "&";
                postStr = postStr.Substring(0, postStr.LastIndexOf('&'));
                return (TokenReslut)JsonConvert.DeserializeObject<TokenReslut>(_rongHttpClient.ExecutePost(appKey, appSecret, apiUrl + "/user/getToken.json", postStr, "application/x-www-form-urlencoded"));
            }
            class RongHttpClient
            {
                public String ExecutePost(String appkey, String appSecret, String methodUrl, String postStr, String contentType)
                {
                    Random rd = new Random();
                    int rd_i = rd.Next();
                    String nonce = Convert.ToString(rd_i);
    
                    String timestamp = Convert.ToString(ConvertDateTimeInt(DateTime.Now));
    
                    String signature = GetHash(appSecret + nonce + timestamp);
    
                    HttpWebRequest myRequest = (HttpWebRequest)WebRequest.Create(methodUrl);
    
                    myRequest.Method = "POST";
                    if (contentType == null || contentType.Equals("") || contentType.Length < 10)
                    {
                        myRequest.ContentType = "application/x-www-form-urlencoded";
                    }
                    else
                    {
                        myRequest.ContentType = contentType;
                    }
                    myRequest.ProtocolVersion = HttpVersion.Version10;
    
                    myRequest.Headers.Add("App-Key", appkey);
                    myRequest.Headers.Add("Nonce", nonce);
                    myRequest.Headers.Add("Timestamp", timestamp);
                    myRequest.Headers.Add("Signature", signature);
                    myRequest.ReadWriteTimeout = 30 * 1000;
    
                    byte[] data = Encoding.UTF8.GetBytes(postStr);
                    myRequest.ContentLength = data.Length;
    
                    Stream newStream = myRequest.GetRequestStream();
    
                    // Send the data.
                    newStream.Write(data, 0, data.Length);
                    newStream.Close();
    
                    return returnResult(myRequest);
                }
                /// <summary>  
                /// DateTime时间格式转换为Unix时间戳格式  
                /// </summary>  
                /// <param name="time"> DateTime时间格式</param>  
                /// <returns>Unix时间戳格式</returns>  
                public int ConvertDateTimeInt(System.DateTime time)
                {
                    System.DateTime startTime = TimeZone.CurrentTimeZone.ToLocalTime(new System.DateTime(1970, 1, 1));
                    return (int)(time - startTime).TotalSeconds;
                }
                public String GetHash(String input)
                {
                    //建立SHA1对象
                    SHA1 sha = new SHA1CryptoServiceProvider();
    
                    //将mystr转换成byte[]
                    UTF8Encoding enc = new UTF8Encoding();
                    byte[] dataToHash = enc.GetBytes(input);
    
                    //Hash运算
                    byte[] dataHashed = sha.ComputeHash(dataToHash);
    
                    //将运算结果转换成string
                    string hash = BitConverter.ToString(dataHashed).Replace("-", "");
    
                    return hash;
                }
    
                public string returnResult(HttpWebRequest myRequest)
                {
                    HttpWebResponse myResponse = null;
                    int httpStatus = 200;
                    string content;
                    try
                    {
                        myResponse = (HttpWebResponse)myRequest.GetResponse();
                        httpStatus = (int)myResponse.StatusCode;
                        StreamReader reader = new StreamReader(myResponse.GetResponseStream(), Encoding.UTF8);
    
                        content = reader.ReadToEnd();
                    }
                    catch (WebException e)
                    { //异常请求
                        myResponse = (HttpWebResponse)e.Response;
                        httpStatus = (int)myResponse.StatusCode;
                        using (Stream errData = myResponse.GetResponseStream())
                        {
                            using (StreamReader reader = new StreamReader(errData))
                            {
                                content = reader.ReadToEnd();
                            }
                        }
                    }
                    return content;
                }
            }
            //发送个人消息
            /// <summary>
            /// 发送个人消息
            /// </summary>
            /// <param name="fromUserId">发送人用户 Id。(必传)</param>
            /// <param name="toUserId">接收用户 Id,可以实现向多人发送消息,每次上限为 1000 人。(必传)</param>
            /// <param name="message">消息。</param>
            /// <param name="pushContent"></param>
            /// <param name="pushData"></param>
            /// <param name="count"></param>
            /// <param name="verifyBlacklist"></param>
            /// <param name="isPersisted"></param>
            /// <param name="isCounted"></param>
            /// <param name="isIncludeSender"></param>
            /// <returns></returns>
            public CodeSuccessReslut PublishPrivate(String fromUserId, String[] toUserId, SendMessage message, String pushContent, String pushData, String count, int verifyBlacklist, int isPersisted, int isCounted, int isIncludeSender)
            {
                if (fromUserId == null)
                {
                    throw new ArgumentNullException("Paramer 'fromUserId' is required");
                }
    
                if (toUserId == null)
                {
                    throw new ArgumentNullException("Paramer 'toUserId' is required");
                }
    
                if (message.getType() == null)
                {
                    throw new ArgumentNullException("Paramer 'ObjectName' is required");
                }
    
                if (message.toString() == null)
                {
                    throw new ArgumentNullException("Paramer 'Content' is required");
                }
    
                String postStr = "";
                postStr += "fromUserId=" + HttpUtility.UrlEncode(fromUserId == null ? "" : fromUserId, Encoding.UTF8) + "&";
                for (int i = 0; i < toUserId.Length; i++)
                {
                    String child = toUserId[i];
                    postStr += "toUserId=" + HttpUtility.UrlEncode(child, Encoding.UTF8) + "&";
                }
    
                postStr += "objectName=" + HttpUtility.UrlEncode(message.getType(), Encoding.UTF8) + "&";
                postStr += "content=" + HttpUtility.UrlEncode(message.toString(), Encoding.UTF8) + "&";
                postStr += "pushContent=" + HttpUtility.UrlEncode(pushContent == null ? "" : pushContent, Encoding.UTF8) + "&";
                postStr += "pushData=" + HttpUtility.UrlEncode(pushData == null ? "" : pushData, Encoding.UTF8) + "&";
                postStr += "count=" + HttpUtility.UrlEncode(count == null ? "" : count, Encoding.UTF8) + "&";
                postStr += "verifyBlacklist=" + HttpUtility.UrlEncode(Convert.ToString(verifyBlacklist) == null ? "" : Convert.ToString(verifyBlacklist), Encoding.UTF8) + "&";
                postStr += "isPersisted=" + HttpUtility.UrlEncode(Convert.ToString(isPersisted) == null ? "" : Convert.ToString(isPersisted), Encoding.UTF8) + "&";
                postStr += "isCounted=" + HttpUtility.UrlEncode(Convert.ToString(isCounted) == null ? "" : Convert.ToString(isCounted), Encoding.UTF8) + "&";
                postStr += "isIncludeSender=" + HttpUtility.UrlEncode(Convert.ToString(isIncludeSender) == null ? "" : Convert.ToString(isIncludeSender), Encoding.UTF8) + "&";
                postStr = postStr.Substring(0, postStr.LastIndexOf('&'));
    
                return (CodeSuccessReslut)JsonConvert.DeserializeObject<CodeSuccessReslut>(_rongHttpClient.ExecutePost(appKey, appSecret, RongCloud.RONGCLOUDURI + "/message/private/publish.json", postStr, "application/x-www-form-urlencoded"));
            }
            //创建群组
            /// <summary>
            /// 创建群组
            /// </summary>
            /// <param name="userId">要加入群的用户Id</param>
            /// <param name="groupId">创建群组Id</param>
            /// <param name="groupName">群组Id对应的名称</param>
            /// <returns></returns>
            public CodeSuccessReslut CreateGroup(String[] userId, String groupId, String groupName)
            {
                if (userId == null)
                {
                    throw new ArgumentNullException("Paramer 'userId' is required");
                }
    
                if (groupId == null)
                {
                    throw new ArgumentNullException("Paramer 'groupId' is required");
                }
    
                if (groupName == null)
                {
                    throw new ArgumentNullException("Paramer 'groupName' is required");
                }
    
                String postStr = "";
                for (int i = 0; i < userId.Length; i++)
                {
                    String child = userId[i];
                    postStr += "userId=" + HttpUtility.UrlEncode(child, Encoding.UTF8) + "&";
                }
    
                postStr += "groupId=" + HttpUtility.UrlEncode(groupId == null ? "" : groupId, Encoding.UTF8) + "&";
                postStr += "groupName=" + HttpUtility.UrlEncode(groupName == null ? "" : groupName, Encoding.UTF8) + "&";
                postStr = postStr.Substring(0, postStr.LastIndexOf('&'));
    
                return (CodeSuccessReslut)JsonConvert.DeserializeObject<CodeSuccessReslut>(_rongHttpClient.ExecutePost(appKey, appSecret, RongCloud.RONGCLOUDURI + "/group/create.json", postStr, "application/x-www-form-urlencoded"));
            }
    
            //加入群组
            /// <summary>
            /// 加入群组
            /// </summary>
            /// <param name="userId">要加入群组的用户Id</param>
            /// <param name="groupId">群Id</param>
            /// <param name="groupName">群名称</param>
            /// <returns></returns>
            public CodeSuccessReslut JoinGroup(String[] userId, String groupId, String groupName)
            {
                if (userId == null)
                {
                    throw new ArgumentNullException("Paramer 'userId' is required");
                }
    
                if (groupId == null)
                {
                    throw new ArgumentNullException("Paramer 'groupId' is required");
                }
    
                if (groupName == null)
                {
                    throw new ArgumentNullException("Paramer 'groupName' is required");
                }
    
                String postStr = "";
                for (int i = 0; i < userId.Length; i++)
                {
                    String child = userId[i];
                    postStr += "userId=" + HttpUtility.UrlEncode(child, Encoding.UTF8) + "&";
                }
    
                postStr += "groupId=" + HttpUtility.UrlEncode(groupId == null ? "" : groupId, Encoding.UTF8) + "&";
                postStr += "groupName=" + HttpUtility.UrlEncode(groupName == null ? "" : groupName, Encoding.UTF8) + "&";
                postStr = postStr.Substring(0, postStr.LastIndexOf('&'));
    
                return (CodeSuccessReslut)JsonConvert.DeserializeObject<CodeSuccessReslut>(_rongHttpClient.ExecutePost(appKey, appSecret, RongCloud.RONGCLOUDURI + "/group/join.json", postStr, "application/x-www-form-urlencoded"));
            }
    
            //退出群组
            /// <summary>
            /// 退出群组
            /// </summary>
            /// <param name="userId">用户Id</param>
            /// <param name="groupId">群组Id</param>
            /// <returns></returns>
            public CodeSuccessReslut QuitGroup(String[] userId, String groupId)
            {
                if (userId == null)
                {
                    throw new ArgumentNullException("Paramer 'userId' is required");
                }
    
                if (groupId == null)
                {
                    throw new ArgumentNullException("Paramer 'groupId' is required");
                }
    
                String postStr = "";
                for (int i = 0; i < userId.Length; i++)
                {
                    String child = userId[i];
                    postStr += "userId=" + HttpUtility.UrlEncode(child, Encoding.UTF8) + "&";
                }
    
                postStr += "groupId=" + HttpUtility.UrlEncode(groupId == null ? "" : groupId, Encoding.UTF8) + "&";
                postStr = postStr.Substring(0, postStr.LastIndexOf('&'));
    
                return (CodeSuccessReslut)JsonConvert.DeserializeObject<CodeSuccessReslut>(_rongHttpClient.ExecutePost(appKey, appSecret, RongCloud.RONGCLOUDURI + "/group/quit.json", postStr, "application/x-www-form-urlencoded"));
    
            }
    
    
            //发送群组消息
            /// <summary>
            /// 发送群组消息
            /// </summary>
            /// <param name="fromUserId">发送用户id</param>
            /// <param name="toGroupId">群组Id,可以多个群组</param>
            /// <param name="message">消息内容</param>
            /// <param name="pushContent">定义显示的 Push 内容,如果 objectName 为融云内置消息类型时,则发送后用户一定会收到 Push 信息. 如果为自定义消息,则 pushContent 为自定义消息显示的 Push 内容,如果不传则用户不会收到 Push 通知。(可选)</param>
            /// <param name="pushData">针对 iOS 平台为 Push 通知时附加到 payload 中,Android 客户端收到推送消息时对应字段名为 pushData。(可选)</param>
            /// <param name="isPersisted">当前版本有新的自定义消息,而老版本没有该自定义消息时,老版本客户端收到消息后是否进行存储,0 表示为不存储、 1 表示为存储,默认为 1 存储消息。(可选)</param>
            /// <param name="isCounted"></param>
            /// <param name="isIncludeSender"></param>
            /// <returns></returns>
            public CodeSuccessReslut PublishGroup(String fromUserId, String[] toGroupId, TxtMsgRC message, String pushContent, String pushData, int isPersisted, int isCounted, int isIncludeSender)
            {
                if (fromUserId == null)
                {
                    throw new ArgumentNullException("Paramer 'fromUserId' is required");
                }
    
                if (toGroupId == null)
                {
                    throw new ArgumentNullException("Paramer 'toGroupId' is required");
                }
    
                if (message.getType() == null)
                {
                    throw new ArgumentNullException("Paramer 'ObjectName' is required");
                }
    
                if (message.toString() == null)
                {
                    throw new ArgumentNullException("Paramer 'Content' is required");
                }
    
                String postStr = "";
                postStr += "fromUserId=" + HttpUtility.UrlEncode(fromUserId == null ? "" : fromUserId, Encoding.UTF8) + "&";
                for (int i = 0; i < toGroupId.Length; i++)
                {
                    String child = toGroupId[i];
                    postStr += "toGroupId=" + HttpUtility.UrlEncode(child, Encoding.UTF8) + "&";
                }
    
                postStr += "objectName=" + HttpUtility.UrlEncode(message.getType(), Encoding.UTF8) + "&";
                postStr += "content=" + HttpUtility.UrlEncode(message.toString(), Encoding.UTF8) + "&";
                postStr += "pushContent=" + HttpUtility.UrlEncode(pushContent == null ? "" : pushContent, Encoding.UTF8) + "&";
                postStr += "pushData=" + HttpUtility.UrlEncode(pushData == null ? "" : pushData, Encoding.UTF8) + "&";
                postStr += "isPersisted=" + HttpUtility.UrlEncode(Convert.ToString(isPersisted) == null ? "" : Convert.ToString(isPersisted), Encoding.UTF8) + "&";
                postStr += "isCounted=" + HttpUtility.UrlEncode(Convert.ToString(isCounted) == null ? "" : Convert.ToString(isCounted), Encoding.UTF8) + "&";
                postStr += "isIncludeSender=" + HttpUtility.UrlEncode(Convert.ToString(isIncludeSender) == null ? "" : Convert.ToString(isIncludeSender), Encoding.UTF8) + "&";
                postStr = postStr.Substring(0, postStr.LastIndexOf('&'));
    
                return (CodeSuccessReslut)JsonConvert.DeserializeObject<CodeSuccessReslut>(_rongHttpClient.ExecutePost(appKey, appSecret, RongCloud.RONGCLOUDURI + "/message/group/publish.json", postStr, "application/x-www-form-urlencoded"));
            }
    
            //加入黑名单
            /// <summary>
            /// 加入黑名单
            /// </summary>
            /// <param name="userId">用户Id</param>
            /// <param name="blackUserId">被加入黑名单的用户Id</param>
            /// <returns></returns>
            public CodeSuccessReslut AddBlackList(String userId, String blackUserId)
            {
                if (userId == null)
                {
                    throw new ArgumentNullException("Paramer 'userId' is required");
                }
    
                if (blackUserId == null)
                {
                    throw new ArgumentNullException("Paramer 'blackUserId' is required");
                }
    
                String postStr = "";
                postStr += "userId=" + HttpUtility.UrlEncode(userId == null ? "" : userId, Encoding.UTF8) + "&";
                postStr += "blackUserId=" + HttpUtility.UrlEncode(blackUserId == null ? "" : blackUserId, Encoding.UTF8) + "&";
                postStr = postStr.Substring(0, postStr.LastIndexOf('&'));
    
                return (CodeSuccessReslut)JsonConvert.DeserializeObject<CodeSuccessReslut>(_rongHttpClient.ExecutePost(appKey, appSecret, RongCloud.RONGCLOUDURI + "/user/blacklist/add.json", postStr, "application/x-www-form-urlencoded"));
            }
    
            //移出黑名单
            /// <summary>
            /// 移除黑名单
            /// </summary>
            /// <param name="userId">用户Id</param>
            /// <param name="blackUserId">被移除用户的Id</param>
            /// <returns></returns>
            public CodeSuccessReslut RemoveBlackList(String userId, String blackUserId)
            {
                if (userId == null)
                {
                    throw new ArgumentNullException("Paramer 'userId' is required");
                }
    
                if (blackUserId == null)
                {
                    throw new ArgumentNullException("Paramer 'blackUserId' is required");
                }
    
                String postStr = "";
                postStr += "userId=" + HttpUtility.UrlEncode(userId == null ? "" : userId, Encoding.UTF8) + "&";
                postStr += "blackUserId=" + HttpUtility.UrlEncode(blackUserId == null ? "" : blackUserId, Encoding.UTF8) + "&";
                postStr = postStr.Substring(0, postStr.LastIndexOf('&'));
    
                return (CodeSuccessReslut)JsonConvert.DeserializeObject<CodeSuccessReslut>(_rongHttpClient.ExecutePost(appKey, appSecret, RongCloud.RONGCLOUDURI + "/user/blacklist/remove.json", postStr, "application/x-www-form-urlencoded"));
            }
    
            //添加禁言群成员方法
            /// <summary>
            /// 添加禁言群成员
            /// </summary>
            /// <param name="userId">用户Id</param>
            /// <param name="groupId">群组Id</param>
            /// <param name="minute">禁言时长,以分钟为单位,最大值43200分钟</param>
            /// <returns></returns>
            public CodeSuccessReslut AddGagUserGroup(String userId, String groupId, String minute)
            {
                if (userId == null)
                {
                    throw new ArgumentNullException("Paramer 'userId' is required");
                }
    
                if (groupId == null)
                {
                    throw new ArgumentNullException("Paramer 'groupId' is required");
                }
    
                if (minute == null)
                {
                    throw new ArgumentNullException("Paramer 'minute' is required");
                }
    
                String postStr = "";
                postStr += "userId=" + HttpUtility.UrlEncode(userId == null ? "" : userId, Encoding.UTF8) + "&";
                postStr += "groupId=" + HttpUtility.UrlEncode(groupId == null ? "" : groupId, Encoding.UTF8) + "&";
                postStr += "minute=" + HttpUtility.UrlEncode(minute == null ? "" : minute, Encoding.UTF8) + "&";
                postStr = postStr.Substring(0, postStr.LastIndexOf('&'));
    
                return (CodeSuccessReslut)JsonConvert.DeserializeObject<CodeSuccessReslut>(_rongHttpClient.ExecutePost(appKey, appSecret, RongCloud.RONGCLOUDURI + "/group/user/gag/add.json", postStr, "application/x-www-form-urlencoded"));
            }
    
            //移除禁言群成员方法
            /// <summary>
            /// 移除禁言群成员
            /// </summary>
            /// <param name="userId">用户Id,支持多个</param>
            /// <param name="groupId">群组Id</param>
            /// <returns></returns>
            public CodeSuccessReslut RollBackGagUserGroup(String[] userId, String groupId)
            {
                if (userId == null)
                {
                    throw new ArgumentNullException("Paramer 'userId' is required");
                }
    
                if (groupId == null)
                {
                    throw new ArgumentNullException("Paramer 'groupId' is required");
                }
    
                String postStr = "";
                for (int i = 0; i < userId.Length; i++)
                {
                    String child = userId[i];
                    postStr += "userId=" + HttpUtility.UrlEncode(child, Encoding.UTF8) + "&";
                }
    
                postStr += "groupId=" + HttpUtility.UrlEncode(groupId == null ? "" : groupId, Encoding.UTF8) + "&";
                postStr = postStr.Substring(0, postStr.LastIndexOf('&'));
    
                return (CodeSuccessReslut)JsonConvert.DeserializeObject<CodeSuccessReslut>(_rongHttpClient.ExecutePost(appKey, appSecret, RongCloud.RONGCLOUDURI + "/group/user/gag/rollback.json", postStr, "application/x-www-form-urlencoded"));
            }
    
            //解散群组方法
            /// <summary>
            /// 解散群组方法。(将该群解散,所有用户都无法再接收该群的消息。) 
            /// </summary>
            /// <param name="userId">操作解散群的用户 Id。(必传)</param>
            /// <param name="groupId">要解散的群 Id。(必传)</param>
            /// <returns></returns>
            public CodeSuccessReslut DisMissGroup(String userId, String groupId)
            {
                if (userId == null)
                {
                    throw new ArgumentNullException("Paramer 'userId' is required");
                }
    
                if (groupId == null)
                {
                    throw new ArgumentNullException("Paramer 'groupId' is required");
                }
    
                String postStr = "";
                postStr += "userId=" + HttpUtility.UrlEncode(userId == null ? "" : userId, Encoding.UTF8) + "&";
                postStr += "groupId=" + HttpUtility.UrlEncode(groupId == null ? "" : groupId, Encoding.UTF8) + "&";
                postStr = postStr.Substring(0, postStr.LastIndexOf('&'));
    
                return (CodeSuccessReslut)JsonConvert.DeserializeObject<CodeSuccessReslut>(_rongHttpClient.ExecutePost(appKey, appSecret, RongCloud.RONGCLOUDURI + "/group/dismiss.json", postStr, "application/x-www-form-urlencoded"));
            }
    
            //查询群成员
            /// <summary>
            /// 查询群成员
            /// </summary>
            /// <param name="groupId">查询群Id</param>
            /// <returns></returns>
            public GroupUserQueryReslut QueryUser(String groupId)
            {
                if (groupId == null)
                {
                    throw new ArgumentNullException("Paramer 'groupId' is required");
                }
    
                String postStr = "";
                postStr += "groupId=" + HttpUtility.UrlEncode(groupId == null ? "" : groupId, Encoding.UTF8) + "&";
                postStr = postStr.Substring(0, postStr.LastIndexOf('&'));
    
                return (GroupUserQueryReslut)JsonConvert.DeserializeObject<GroupUserQueryReslut>(_rongHttpClient.ExecutePost(appKey, appSecret, RongCloud.RONGCLOUDURI + "/group/user/query.json", postStr, "application/x-www-form-urlencoded"));
            }
    
            //消息接口 
            /// <summary>
            /// 发送用户信息接口
            /// </summary>
            public interface SendMessage
            {
                string getType();
                string toString();
            }
          
            //推送消息
            /// <summary>
            /// 推送消息
            /// </summary>
            /// <param name="pushMessage">消息类型内容</param>
            /// <returns></returns>
            public CodeSuccessReslut BroadcastPush(PushMessage pushMessage)
            {
                if (pushMessage == null)
                {
                    throw new ArgumentNullException("Paramer 'pushMessage' is required");
                }
    
                String postStr = "";
                postStr = JsonConvert.SerializeObject(pushMessage);
                return (CodeSuccessReslut)JsonConvert.DeserializeObject<CodeSuccessReslut>(_rongHttpClient.ExecutePost(appKey, appSecret, RongCloud.RONGCLOUDURI + "/push.json", postStr, "application/json"));
            }
        }
    }
  • 相关阅读:
    双主MySQL+keepalived高可用配置
    centos6.8服务器部署svn
    Centos6下rpm安装MySQL5.6
    CentOS6.8下部署Zabbix3.0
    python核心编程第六章练习6-15
    python核心编程第六章练习6-14
    scp 将数据从一台linux服务器复制到另一台linux服务器
    $config['base_url'] BASE_URL
    ubunt设置终端快捷键设置 及 常用快捷键
    URL 路由
  • 原文地址:https://www.cnblogs.com/njccqx/p/9474156.html
Copyright © 2020-2023  润新知