云服务器内容精选
-
报文样例 场景描述:客户接收座席发送的多媒体库文件 请求参数: { "fileType": "jpg", "channel": "WEB", "fileId": "XXXXXXXXXXXXXXXX", "multiMedia":"multiMedia" } 响应参数: { "resultCode": "0", "fileUrl": "https://IP:PORT/ccmessaging/202307260369/agent/202307260369134944/1111111111114/e43f69a2-01ee-48ec-82cd-bdf8447492e0.png?AccessKeyId=5BKCLVUJC700HY9M51AT&Expires=1716445961&Signature=LDYl%2FfEpaLbpvlxfEnYxW8QdevY%3D", "fileStream": "/9j/4AAQSkZJRgABAQEAYABgAAD/2wBDAAMCAgMCAgMDAwMEAwMEBQgFBQQEBQoHBwYIDAoMDAsKCwsNDhIQDQ4RDgsLEBYQERMUFRUVDA8XGBYUGBIUFRT/2wBDAQMEBAUEBQkFBQkUDQsNFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBT/wAARCAA9ADwDASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcI" } 场景描述:客户接收座席发送的本地文件 请求参数: { "fileType": "png", "channel": "WEB", "fileId": "local/XXXXXXXXXXXXXXXX" } 响应参数: { "resultCode": "0", "fileUrl": "https://IP:PORT/ccmessaging/202307260369/agent/202307260369134944/1111111111114/e43f69a2-01ee-48ec-82cd-bdf8447492e0.png?AccessKeyId=5BKCLVUJC700HY9M51AT&Expires=1716445961&Signature=LDYl%2FfEpaLbpvlxfEnYxW8QdevY%3D", "fileStream": "iVBORw0KGgoAAAANSUhEUgAAACEAAAAnCAYAAACBvSFyAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAA7SURBVFhH7c6hEQAgDAAx1uj+gxbB/QyYiPicmdnfJCIRiUhEIhKRiEQkIhGJSEQiEpGIRCQiEYln9gJ7uXthjovHaAAAAABJRU5ErkJggg==" }
-
响应说明 响应状态码: 200 表4 RspBody参数结构 序号 名称 参数类型 说明 1.1 fileStream string Base64编码后的文件流。 1.2 resultCode string 响应返回码,0表示成功,非0表示失败 0:成功,不反悔提示信息 401:objectKey is null! 13:param filetype Out of range!或empty file!或fsservice downloadFile is failed或downloadFileStream IOException或downloadFileStream exception 2:param channelId or userId or tenantId is null 1.3 resultDesc string 响应返回描述,0表示成功,非0表示失败。 1.4 fileUrl string 接收文件临时查看链接。默认保留24小时。 响应状态码: 400 错误的请求:请检查请求路径及参数。 响应状态码: 401 未授权:1.请确认是否购买了相关服务。2.请联系客服人员检查您账号的当前状态。 响应状态码: 404 请求的内容未找到:请检查请求的路径。 响应状态码: 500 业务失败:请依次确认您请求中各参数的取值。
-
请求说明 表1 请求头参数 序号 名称 参数类型 是否必选 说明 1 ccmessaging-token string True applyToken接口返回的token值。 会话过程中接口Response Header中返回的ccmessaging-token的值。 2 x-app-key string True appKey字段,用户标识,在API Fabric工具上配置 3 Authorization string True 鉴权字段,内容格式为: Bearer +tokenByAKSK接口的返回值中AccessToken(Bearer后有空格) 表2 请求体参数 序号 名称 参数类型 是否必选 说明 1 reqBody ReqBody True 请求体 表3 ReqBody参数结构 序号 名称 参数类型 是否必选 说明 1.1 fileId string True 文件下载的fileId,在poll接口中携带 fileId取值 "local/" + content(poll接口响应)时,判定为发送本地文件。若不携带,则判定发送多媒体库文件。 1.2 channel string True 下载渠道类型,当前固定为WEB。 1.3 fileType string True 下载的文件类型,支持jpg,png,bpm,mp3,aac,mp4,txt,csv,richtext,doc,docx,pdf,zip。 发送本地文件场景下,该参数为多媒体文件下行消息中mediaFileType字段。 1.4 multiMedia string False 如果文件为多媒体库文件时,该参数必填,并且需要配置为“multiMedia”。
-
响应说明 响应状态码: 200 表3 响应体参数 序号 名称 参数类型 说明 1.1 resultCode string 响应结果码 1.2 resultDesc string 响应结果描述。 如果resultCode返回0:成功 如果resultCode返回13:disconnect failed 响应状态码: 400 错误的请求:请检查请求路径及参数。 响应状态码: 401 未授权:1.请确认是否购买了相关服务。2.请联系客服人员检查您账号的当前状态。 响应状态码: 404 请求的内容未找到:请检查请求的路径。 响应状态码: 500 业务失败:请依次确认您请求中各参数的取值。
-
请求说明 表1 请求头参数 序号 名称 参数类型 是否必选 说明 1 ccmessaging-token string True applyToken接口生成的ccmessagign-token 2 x-app-key string True appKey字段,用户标识,在API Fabric上配置 3 Authorization string True 鉴权字段,内容格式为: Bearer +tokenByAKSK接口的返回值中AccessToken(Bearer后有空格) 表2 请求体参数 序号 名称 参数类型 是否必选 说明 1.1 channel string True 接收者渠道类型(WEB)
-
请求说明 表1 查询参数 序号 名称 参数类型 是否必选 说明 1 channel string True 接收者渠道类型(WEB) 表2 请求头参数 序号 名称 参数类型 是否必选 说明 1 ccmessaging-token string True applyToken接口生成的ccmessagign-token 2 x-app-key string True appKey字段,用户标识,在API Fabric上配置 3 Authorization string True 鉴权字段,内容格式为: Bearer +tokenByAKSK接口的返回值中AccessToken(Bearer后有空格)
-
响应说明 响应状态码: 200 表3 响应体参数 序号 名称 参数类型 说明 1.1 webR TCS upported boolean WebRTC是否支持 1.2 clickToCallSupported boolean 点击通话是否支持 1.3 resultCode string 响应结果码 1.4 resultDesc string 响应结果描述 响应状态码: 400 错误的请求:请检查请求路径及参数。 响应状态码: 401 未授权:1.请确认是否购买了相关服务。2.请联系客服人员检查您账号的当前状态。 响应状态码: 404 请求的内容未找到:请检查请求的路径。 响应状态码: 500 业务失败:请依次确认您请求中各参数的取值。
-
报文样例 场景描述:连接机器人 请求参数: { "content": "", "controlType": "CONNECT", "from": "session_1619573111751_user_1619573111751", "mediaType": "TEXT", "senderNickname": "user_1619573111751", "sourceType": "CUSTOMER", "timestamp": "1619573122352", "to": "1011577355744904195", "userAgent": null, "senderAvatar": null, "channel": "WEB" } 响应参数: { "resultCode": "0", "resultDesc": "connect to robot successfully." } 场景描述:与机器人交谈请求 请求参数: { "content": "版本", "controlType": "CHAT", "from": "session_1619573111751_user_1619573111751", "mediaType": "TEXT", "senderNickname": "user_1619573111751", "sourceType": "CUSTOMER", "timestamp": "1619573123199", "to": "1011577355744904195", "userAgent": null, "senderAvatar": null, "channel": "WEB" } 响应参数: { "resultCode": "0", "resultDesc": "Send message to robot successfully" } 场景描述:机器人转人工请求 请求参数: { "content": "", "controlType": "TRANS2AGENT", "from": "session_1619573111751_user_1619573111751", "mediaType": "TEXT", "senderNickname": "user_1619573111751", "sourceType": "CUSTOMER", "timestamp": "1619573129953", "to": "1011577355744904195", "userAgent": null, "senderAvatar": null, "channel": "WEB" } 响应参数: { "resultCode": "0", "resultDesc": "transfer from robot to agent success." } 场景:向座席发送文本消息 请求参数: { "content": "这是一条文字消息", "controlType": "CHAT", "from": "1678101150955228003", "mediaType": "TEXT", "senderNickname": "user_lk", "sourceType": "CUSTOMER", "timestamp": "1688038541395", "to": "202303061540344336", "userAgent": null, "senderAvatar": null, "channel": "WEB" } 响应参数 { "resultCode": "0", "resultDesc": "sendUserMessage successfully." } 场景:向座席发送图片消息 请求参数: { "content": "e31d0e44e82f", "controlType": "CHAT", "from": "lk_line_05", "mediaType": "IMAGE", "senderNickname": "lk_line_05", "sourceType": "CUSTOMER", "timestamp": "1688038541395", "to": "202303061540640554", "userAgent": null, "senderAvatar": null, "channel": "LINE" } 响应参数: { "resultCode": "0", "resultDesc": "sendUserMessage successfully." } 场景:向座席发送音频消息 请求参数: { "content": "157831a24986", "controlType": "CHAT", "from": "lk_line_05", "mediaType": "AUDIO", "senderNickname": "lk_line_05", "sourceType": "CUSTOMER", "timestamp": "1688038541395", "to": "202303061540640554", "userAgent": null, "senderAvatar": null, "channel": "LINE" } 响应参数: { "resultCode": "0", "resultDesc": "sendUserMessage successfully." } 场景:向座席发送视频消息 请求参数: { "content": "765c360ab724", "controlType": "CHAT", "from": "lk_line_05", "mediaType": "VIDEO", "senderNickname": "lk_line_05", "sourceType": "CUSTOMER", "timestamp": "1688038541395", "to": "202303061540640554", "userAgent": null, "senderAvatar": null, "channel": "LINE" } 响应参数: { "resultCode": "0", "resultDesc": "sendUserMessage successfully." } 场景:向座席发送文件消息 请求参数: { "content": "test_txt.txt,6,7d9fbcdd-e306-4b84-9831-163fb760cca9,txt", "controlType": "CHAT", "from": "1678101150955228003", "mediaType": "FILE", "senderNickname": "user_lk", "sourceType": "CUSTOMER", "timestamp": "1688038541395", "to": "202303061540344336", "userAgent": null, "senderAvatar": null, "channel": "WEB" } 响应参数: { "resultCode": "0", "resultDesc": "sendUserMessage successfully." } 场景:向座席发送文件消息-图片 请求参数: { "content": "70d46bb7-2272-43b7-acad-c6f893a79848,png", "controlType": "CHAT", "from": "1678101150955228003", "mediaType": "FILE_IMAGE", "senderNickname": "user_lk", "sourceType": "CUSTOMER", "timestamp": "1688038541395", "to": "202303061540344336", "userAgent": null, "senderAvatar": null, "channel": "WEB" } 响应参数: { "resultCode": "0", "resultDesc": "sendUserMessage successfully." } 场景:向座席发送文件消息-视频 请求参数: { "content": "0471a58b-0323-4b94-bc90-55ff36344471,mp4", "controlType": "CHAT", "from": "1678101150955228003", "mediaType": "FILE_VIDEO", "senderNickname": "user_lk", "sourceType": "CUSTOMER", "timestamp": "1688038541395", "to": "202303061540344336", "userAgent": null, "senderAvatar": null, "channel": "WEB" } 响应参数: { "resultCode": "0", "resultDesc": "sendUserMessage successfully." } 场景描述:向座席发送网页卡片消息 请求参数: { "content": "{\"title\":\"测试title 测试title 测试title\",\"description\":\"测试描述 测试描述 测试描述 测试描述\",\"mediaFileId\":\"xxxx-xxxx-xxxx-xxxx-2e171ac78313\",\"mediaFileType\":\"img\",\"redirectUrl\":\"https://www.****.com\"}", "controlType": "CHAT", "from": "session_1619573111751_user_1619573111751", "mediaType": "WEBCARD", "senderNickname": "user_1619573111751", "sourceType": "CUSTOMER", "timestamp": "1619573129953", "to": "1011577355744904195", "userAgent": null, "senderAvatar": null, "channel": "WEB" } 响应参数: { "resultCode": "0", "resultDesc": "sendUserMessage successfully." } 或 { "resultCode": "3", "resultDesc": "The redirection address is not in the trust list, contact operation staff to add it." } 场景描述:断连请求 请求参数: { "content": "", "controlType": "DISCONNECT", "from": "session_1619573842490_user_1619573842490", "mediaType": "TEXT", "senderNickname": "user_1619573842490", "sourceType": "CUSTOMER", "timestamp": "1619573854156", "to": "1011577355744904195", "userAgent": null, "senderAvatar": null, "channel": "WEB" } 响应参数: { "resultCode": "0", "resultDesc": "Disconnect robot successfully" }
-
响应说明 响应状态码: 200 表4 senMsgRsp参数结构 序号 名称 参数类型 说明 1.1 resultDesc string 返回结果码描述 根据不同的场景,返回描述不一样: CONNECT连接座席 如果resultCode返回0:成功 如果resultCode返回11:Queuing... 如果resultCode返回12:The current time is not within the working time of the service agents 如果resultCode返回13:No ccucs address available!或connect failed, none channel config found. 其他非零错误请参见《CCUCS接口开发指南》中的错误码参考。 CONNECT连接机器人 如果resultCode返回0:connect to robot successfully或process robot multi message successfully。 如果resultCode返回11:Queuing... 如果resultCode返回13:Failed to disconnect robot或No ccucs address available!或fail to initialize robot.或connect failed, none channel config found. DISCONNECT断连座席 如果resultCode返回0:disconnect successfully 如果resultCode返回11:Queuing... 如果resultCode返回13:disconnect failed.或disconnect failed, none channel config found.或disconnect failed, session keep touch failed. DISCONNECT断连机器人 如果resultCode返回0:Disconnect robot successfully 如果resultCode返回11:Queuing... 如果resultCode返回13:Failed to disconnect robot.或disconnect failed, none channel config found.或disconnect failed, session keep touch failed. CHAT座席场景 如果resultCode返回0:sendUserMessage successfully. 如果resultCode返回3:Incorrect JSON format或content can not be empty或the content Json String must contains mediaFileId or redirectUrl或the content Json String must contains title或Incorrect mediaFileType. 如果resultCode返回11:Queuing... 如果resultCode返回13:sendUserMessage failed.或Chat failed because the content is empty.或chat failed, none channel config found.或chat failed, send too quick or session keep touch failed. CHAT机器人场景 如果resultCode返回0:Failed to disconnect robot 或Send message to robot successfully 或process robot multi message successfully 如果resultCode返回3:Incorrect JSON format或content can not be empty或the content Json String must contains mediaFileId or redirectUrl或the content Json String must contains title或Incorrect mediaFileType 如果resultCode返回11:Queuing... 如果resultCode返回13:connect failed或Chat failed because the content is empty.或chat failed, none channel config found.或chat failed, send too quick or session keep touch failed. TRANS2AGENT场景 如果resultCode返回13:转人工失败,找不到渠道配置transfer to agent failed, none channel config found. 如果resultCode返回13:转人工失败,会话已失效。fail to transfer from robot to agent,session keep touch failed. 如果resultCode返回13:转人工失败,当前已经是人工服务。fail to transfer from robot to agent,it has been agent service. 如果resultCode返回11:Queuing... 如果resultCode返回12:当前非座席工作时间!The current time is not within the working time of the service agents. 如果resultCode返回13:转人工失败, 无法连接CCUCS。fail to transfer from robot to agent,connect to ccucs failed. 如果resultCode返回13:断开机器人连接失败。Failed to disconnect robot. 如果resultCode返回13:当前无可用座席。No agents available currently. 如果resultCode返回0:transfer from robot to agent success. INPUT场景 如果resultCode返回0:sendUserMessage successfully. 如果resultCode返回11:Queuing... 如果resultCode返回13:发送输入状态失败,找不到渠道配置。send inputStatus failed, none channel config found. 如果resultCode返回13:现在是机器人服务,此条消息无法发送!This is robot service,this message is prevented! 如果resultCode返回13:发送用户消息失败!sendUserMessage failed 如果resultCode返回13: Queuing... 如果resultCode返回3:发送网页卡片消息成功,但是跳转地址未添加到白名单,座席无法跳转。 The redirection address is not in the trust list, contact operation staff to add it. 1.2 resultCode string 接口返回码,成功为0,非0失败 1.3 offlineMsg object 如果离线开关打开,则该值将为true。如果离线开关关闭,AICC将不会返回此对象。 1.3.1 isOfflineStatus boolean 用于客户端判断连接失败后用户是否可以发送消息。 在以下场景中, 1.用户发送失败(controlType=CONNECT), 2.用户发送(controlType=CHAT)失败,没有会话, 3.用户在技能队列中等待时发送(controlType=DISCONNECT) 1.3.2 tipText string 当isOfflineStatus为true时,即触发离线模式,消息将被保存。 响应状态码: 400 错误的请求:请检查请求路径及参数。 响应状态码: 401 未授权:1.请确认是否购买了相关服务。2.请联系客服人员检查您账号的当前状态。 响应状态码: 404 请求的内容未找到:请检查请求的路径。 响应状态码: 500 业务失败:请依次确认您请求中各参数的取值。
-
请求说明 表1 请求头参数 序号 名称 参数类型 是否必选 说明 1 ccmessaging-token string True applyToken接口生成的ccmessaging-token 2 x-app-key string True appKey字段,用户标识,在ApiFabric工具上配置 3 Authorization string True 鉴权字段,内容格式为: Bearer +tokenByAKSK接口的返回值中AccessToken(Bearer后有空格) 表2 请求体参数 序号 名称 参数类型 是否必选 说明 1 reqBody sendMsgReq True 请求体 表3 sendMsgReq参数结构 序号 名称 参数类型 是否必选 说明 1.1 channel string True 客户端发送消息的所属渠道类型,如WEB(WEB客服接入渠道) 1.2 content string False 消息内容,视mediaType而定,例如: mediaType是TEXT,content就是发送的文本内容,文本内容大小不能超过1K。 mediaType是IMAGE、AUDIO、VIDEO,content是fileId,fileId为/ccmessaging/uploadFileStream接口返回的objectKey。 mediaType是FILE,content是拼接后的字符串,以英文逗号分割,固定格式如下:"fileName,fileSize(单位:B),fileId,fileType",其中fileId为/ccmessaging/uploadFileStream接口返回的objectKey,示例:"test_txt.txt,6,7d9fbcdd-e306-4b84-9831-163fb760cca9,txt"。 mediaType是FILE_IMAGE、FILE_VIDEO,content是拼接后的字符串,以英文逗号分割,固定格式:"fileId,mediaType",其中为/ccmessaging/uploadFileStream接口返回的objectKey,如图片为"objectKey,jpg",视频为"objectKey,mp4",音频为"objectKey,mp3",位置为"objectKey,txt",文件下载接口会使用此fileId做文件下载用。 如果mediaType值为WEBCARD,content的值为JSON结构转换的字符串,例如JSON固定结构如下:{"title":"卡片标题","description":"卡片描述","mediaFileId":"卡片媒体文件ID,通过upload接口返回","mediaFileType":"当前仅支持固定值img,img/png,img/jpg,不填类型默认按jpg","redirectUrl":"跳转地址"},其中redirectUrl和mediaFileId为二选一必填项,其他项不填可以为空值。 1.3 controlType string True 消息控制类型,如连接(CONNECT),聊天(CHAT),转人工(TRANS2AGENT),用户输入中(INPUT),断开连接(DISCONNECT),已读(READ) 1.4 from string True 渠道下发送消息的用户ID,取值范围:1到24位字符串。 1.5 mediaType string True 消息媒体类型,如文本类型(TEXT),图片类型(IMAGE),音频类型(AUDIO),视频类型(VIDEO),文件类型(FILE),文件图片(FILE_IMAGE),文件视频(FILE_VIDEO),网页卡片消息(WEBCARD) 1.6 senderNickname string False 消息发送者的昵称 1.7 sourceType string True 消息来源类型,需配置为:CUSTOMER 1.8 timestamp string False 消息发送时间 1.9 to string True 渠道配置ID 1.10 userAgent string False 用户客户端类型,取自UserAgent 1.11 senderAvatar string False 消息发送者的头像,渠道传输头像URL,最长1024字符 1.12 messageId string False 用于标识发送的消息用户的唯一值。最大长度为32。值不能包含逗号“,”。 1.13 transData string False json格式数据,连接机器人的时候传给机器人流程。
-
报文样例 场景描述:查询历史消息 URL:请求成功报文 请求头: {"ccmessaging-token": "eyJjcmVhdGVUaW1lIjoxNjIyNjI2Mjc3NDA4LCJ0ZW5hbnRJZCI6IjIwMjEwMjE5MzE5NiIsInJhbmRvbU51bWJlciI6IjZDRjEyOTE0OTQ3QzY1NzUwRUI4RDRBNENDODZEQTJGRTE4RjhBOTVERjcwMzA1QyIsIm1hcFNlcnZpY2UiOiJudWxsIiwidXNlck5hbWUiOiIyMzEyMzIxIiwibG9jYWxlIjoiemgiLCJ1c2VySWQiOiIxMTExMTExIiwiY2hhbm5lbElkIjoiMjAyMTAyMTkzMTk2ODY5NzA4In0%3D","x-app-key": "ea5c29a3-ea45-4b79-a449-2a3dbeb4c32c","Authorization": "Bearer 57042f85aeabd63562f2e8339968c4e0","Content-Type": "application/json"} 请求参数: { "channelId":"202207292843442389", "userId":"1659490221026188522", "limit":"1", "offset":"0", "startTime":"1659910093000", "endTime":"1659938956000", "channel":"WEB"} 响应参数: { "messageList": [ { "id": "10113293212986888", "channel": "WEB", "senderNickname": "wangming77", "senderAvatar": "../../image/user1.png", "sendTime": 1659938956000, "receiveTime": 1659938956000, "controlType": "CHAT", "sourceType": "USER", "mediaType": "FILE", "content": "diaoyu.aac,26964,fee53aad-94a0-4dc2-b7ff-fd8c2e2496f2,aac", "callId": "1659938875-16806492", "messageCode": "67A257B0DB5EFBC08C9F2BD612443F09BBF858570A62CCAAB8D3CE45B7C0EFD0", "associationContentId": null, "sendStatus": null, "errorMsg": null, "isForwarded": false, "forwardTime": null, "contentDealType": null } ], "resultCode": "0", "resultDesc": "success"}
-
响应说明 响应状态码: 200 表3 响应体参数 序号 名称 参数类型 是否必选 说明 1.1 messageList array True 查询到的历史消息集合 1.1 resultCode string True 0:成功 1:失败 1.2 resultDesc string True 响应返回描述 响应状态码: 400 错误的请求:请检查请求路径及参数。 响应状态码: 401 未授权:1.请确认是否购买了相关服务。2.请联系客服人员检查您账号的当前状态。 响应状态码: 404 请求的内容未找到:请检查请求的路径。 响应状态码: 500 业务失败:请依次确认您请求中各参数的取值。
-
请求说明 表1 请求头参数 序号 名称 参数类型 是否必选 说明 1 x-app-key string True appKey字段,用户标识 2 Authorization string True 鉴权字段,内容格式为:Bearer +tokenByAKSK接口的返回值中AccessToken(Bearer后有空格) 3 ccmessaging-token string True applyToken接口生成的ccmessaging-token 表2 请求体参数 序号 名称 参数类型 是否必选 说明 1.1 channelId string True 渠道标识 1.2 userId string True 渠道下发送消息的用户ID 1.3 startTime string False 查询历史消息开始时间 1.4 endTime string False 查询历史消息结束时间 1.5 limit string True 分页参数,查询历史消息数量 1.6 offset string True 分页参数,偏移量
更多精彩内容
CDN加速
GaussDB
文字转换成语音
免费的服务器
如何创建网站
域名网站购买
私有云桌面
云主机哪个好
域名怎么备案
手机云电脑
SSL证书申请
云点播服务器
免费OCR是什么
电脑云桌面
域名备案怎么弄
语音转文字
文字图片识别
云桌面是什么
网址安全检测
网站建设搭建
国外CDN加速
SSL免费证书申请
短信批量发送
图片OCR识别
云数据库MySQL
个人域名购买
录音转文字
扫描图片识别文字
OCR图片识别
行驶证识别
虚拟电话号码
电话呼叫中心软件
怎么制作一个网站
Email注册网站
华为VNC
图像文字识别
企业网站制作
个人网站搭建
华为云计算
免费租用云托管
云桌面云服务器
ocr文字识别免费版
HTTPS证书申请
图片文字识别转换
国外域名注册商
使用免费虚拟主机
云电脑主机多少钱
鲲鹏云手机
短信验证码平台
OCR图片文字识别
SSL证书是什么
申请企业邮箱步骤
免费的企业用邮箱
云免流搭建教程
域名价格