목차
回复文本消息
回复图片消息
回复语音消息
回复视频消息
回复音乐消息
回复图文消息
위챗 애플릿 위챗 개발 WeChat 개발 수동 응답 및 파일 업로드 및 다운로드

WeChat 개발 수동 응답 및 파일 업로드 및 다운로드

May 09, 2017 am 09:58 AM

이미 5장에서 사용자가 보낸 메시지를 처리하는 방법에 대해 설명했습니다. 이번 장에서는 사용자 요청에 응답하는 방법에 대해 설명합니다. 초보자들은 이 제목을 보고 혼란스러울 것입니다. WeChat의 인터페이스는 이와 같습니다. 사진, 음악, 음성 등에 응답하려면 먼저 미디어 파일을 WeChat 서버에 업로드해야 합니다. 그것을 사용할 수 있습니다. 이 접근 방식에는 어떤 고려 사항이 있는지 잘 모르겠고, 사용자에게 메시지를 회신할 때 고객 서비스 인터페이스와 그룹 전송 인터페이스에서 보내는 메시지 본문 형식이 실제로 다릅니다. 이러한 인터페이스는 같은 사람이 작성한 것이 아니며 코드가 통합되지 않은 것으로 추정됩니다.

업로드 및 다운로드 인터페이스에 대해 이야기하기 전에 먼저 access_token 획득 방법에 대해 이야기해야 합니다. WeChat 인터페이스 개발 과정에서 access_token은 공식 계정의 전역 고유 티켓이며 각 인터페이스를 호출할 때 access_token을 사용해야 합니다. 개발자는 이를 올바르게 저장해야 합니다. access_token 저장을 위해 최소 512자 이상의 공간을 확보해야 합니다. access_token의 유효 기간은 현재 2시간이며 정기적으로 새로 고쳐야 합니다. 반복적으로 획득하면 마지막 access_token이 무효화됩니다. 동시에 공식 계정에는 유효한 access_token이 하나만 있으며 개발자는 access_token이 만료되기 전에 access_token을 새로 고쳐야 합니다. 새로 고침 프로세스 중에 공개 플랫폼 백엔드는 짧은 새로 고침 시간 내에 이전 및 새 access_token을 모두 사용할 수 있도록 보장하여 타사 서비스의 원활한 전환을 보장합니다.

공식 계정은 AppID 및 AppSecret을 사용하여 이 인터페이스를 호출하여 access_token을 얻을 수 있습니다. AppID와 AppSecret은 위챗 퍼블릭 플랫폼 공식 홈페이지 - 개발자 센터 페이지에서 받으실 수 있습니다. (개발자 자격이 있어야 하며, 계정에 비정상적인 상태가 없어야 합니다.) 아래와 같이

WeChat 개발 수동 응답 및 파일 업로드 및 다운로드

access_token을 얻기 위한 인터페이스 주소는

https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=APPID&secret=APPSECRET
로그인 후 복사
将appid和secret替换成你自己的。
로그인 후 복사

이 주소로 get 요청을 보내고 반환되는 데이터는 다음과 같습니다.

{"access_token":"eEd6dhp0s24JfWwDyGBbrvJxnhqHTSYZ8MKdQ7MuCGBKxAjHv-tEIwhFZzn102lGvIWxnjZZreT6C1NCT9fpS7NREOkEX42yojVnqKVaicg","expires_in":7200}
로그인 후 복사
我们只需解析这个json,即可获取到我们所需的access_token.代码如下:
로그인 후 복사
AccessToken实体类:
로그인 후 복사
public class AccessToken
    {        public string token { get; set; }        public DateTime expirestime { get; set; }
    }
로그인 후 복사

Get access token

/// <summary>
        /// 获取access token        /// </summary>
        /// <param name="appid">第三方用户唯一凭证</param>
        /// <param name="secret">第三方用户唯一凭证密钥,即appsecret</param>
        /// <returns>AccessToken对象,expirestime是过期时间</returns>
        public static AccessToken GetAccessToken(string appid, string secret)
        {            try
            {                string url = string.Format("https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid={0}&secret={1}", appid, secret);                string retdata = Utils.HttpGet(url);                if (retdata.Contains("access_token"))
                {
                    JObject obj = (JObject)JsonConvert.DeserializeObject(retdata);                    string token = obj.Value<string>("access_token");                    int expirestime = obj.Value<int>("expires_in");                    return new AccessToken { token = token, expirestime = DateTime.Now.AddSeconds(expirestime) };
                }                else
                {
                    WriteBug(retdata);//写错误日志                }                return null;
            }            catch (Exception e)
            {
                WriteBug(e.ToString());//写错误日志
                return null;
            }

        }
로그인 후 복사

access_token을 성공적으로 획득한 후 멀티미디어 파일을 업로드하고 다운로드해 봅시다. 관계자는 공식 계정이 인터페이스를 사용할 때 멀티미디어 파일, 멀티미디어 메시지 획득 및 호출 등의 작업이 media_id를 통해 수행된다고 밝혔습니다. (저는 읽기에 대해 잘 몰라서 URL을 사용할 수 없는 이유를 모르겠습니다. 하지만 보내기 전에 서버에 업로드할 필요는 없습니다. 이 인터페이스를 통해 공개 계정은 멀티미디어 파일을 업로드하거나 다운로드할 수 있습니다. 하지만 각 멀티미디어 파일(media_id)은 서버 리소스를 절약하기 위해 사용자가 업로드한 후 3일이 지나면 자동으로 삭제됩니다.

멀티미디어 업로드를 위한 인터페이스 주소는

file.api.weixin.qq.com/cgi-bin/media/upload?access_token=ACCESS_TOKEN&type=TYPE
로그인 후 복사

입니다. 여기서 access_token은 호출 인터페이스 자격 증명이고 type은 이미지, 음성 및 비디오를 포함한 미디어 파일 형식입니다. (동영상) 및 썸네일 (썸)

참고 :

업로드되는 멀티미디어 파일에는 다음과 같은 형식 및 크기 제한이 있습니다. :

  • 사진(이미지): 1M, JPG 형식 지원

  • 음성(음성): 2M, 재생 길이는 60초 이내, 지원 AMRMP3 형식

  • 동영상(동영상): 10MB, MP4 형식 지원

  • 썸네일(thumb): 64KB, JPG 형식 지원

미디어 파일은 3일 동안 백그라운드에 저장됩니다. 즉, media_id는 3일 후에 만료됩니다.

호출의 편의를 위해 미디어 파일의 유형을 열거형으로 정의합니다. 코드는 다음과 같습니다.

public enum MediaType
    {        /// <summary>
        /// 图片(WeChat 개발 수동 응답 및 파일 업로드 및 다운로드): 1M,支持JPG格式        /// </summary>        WeChat 개발 수동 응답 및 파일 업로드 및 다운로드,        /// <summary>
        /// 语音(voice):2M,播放长度不超过60s,支持AMR\MP3格式        /// </summary>        voice,        /// <summary>
        /// 视频(video):10MB,支持MP4格式        /// </summary>        video,        /// <summary>
        /// 缩略图(thumb):64KB,支持JPG格式        /// </summary>        thumb
    }
로그인 후 복사

그런 다음 반환 값의 유형을 정의합니다.

public class UpLoadInfo
    {        /// <summary>
        /// 媒体文件类型,分别有图片(WeChat 개발 수동 응답 및 파일 업로드 및 다운로드)、语音(voice)、视频(video)和缩略图(thumb,主要用于视频与音乐格式的缩略图)        /// </summary>
        public string type { get; set; }        /// <summary>
        /// 媒体文件上传后,获取时的唯一标识        /// </summary>
        public string media_id { get; set; }        /// <summary>
        /// 媒体文件上传时间戳        /// </summary>
        public string created_at { get; set; }
    }
로그인 후 복사

마지막으로 WebClient 클래스를 사용하여 파일을 업로드하고 반환 값을 읽습니다. 코드는 다음과 같습니다.

/// <summary>
        /// 微信上传多媒体文件        /// </summary>
        /// <param name="filepath">文件绝对路径</param>
        public static ReceiveModel.UpLoadInfo WxUpLoad(string filepath, string token, MediaType mt)
        {            using (WebClient client = new WebClient())
            {                byte[] b = client.UploadFile(string.Format("http://file.api.weixin.qq.com/cgi-bin/media/upload?access_token={0}&type={1}", token, mt.ToString()), filepath);//调用接口上传文件                string retdata = Encoding.Default.GetString(b);//获取返回值                if (retdata.Contains("media_id"))//判断返回值是否包含media_id,包含则说明上传成功,然后将返回的json字符串转换成json
                {                    return JsonConvert.DeserializeObject<UpLoadInfo>(retdata);
                }                else
                {//否则,写错误日志

                    WriteBug(retdata);//写错误日志
                    return null;
                }
            }
        }
로그인 후 복사

이 시점에서 응답 메시지에 대해 이야기하기 전에 두 가지 기본 지원 인터페이스가 삽입되었습니다. 정리력, 요약력이 너무 형편없으니 꼭 읽어주세요. 궁금한 점이 있으면 메시지를 남겨서 소통해주세요. 메시지 답장에 대해 공식적으로 이야기를 시작하겠습니다. 다음 내용을 읽으실 때에는 4장, 5장과 연계하여 읽어주시기 바랍니다.

처음 두 장에서는 사용자가 보낸 메시지를 수신하고 처리하는 방법에 대해 설명했고, 메시지 기본 클래스인 BaseMessage에 대해 설명했습니다. 수신하는 메시지 유형에 관계없이 사용자에게 응답하는 메서드를 호출할 수 있어야 합니다. 요청이므로 사용자가 사용자 요청에 응답하는 방법은 기본 클래스로 캡슐화되어야 합니다. 공개 계정이 응답할 수 있는 메시지 유형과 메시지 형식을 간략하게 살펴보겠습니다.

참고:

다음 상황이 발생하면 WeChat은 공식 계정 세션에서 사용자에게 "이 공식 계정을 일시적으로 사용할 수 없습니다"라는 시스템 메시지를 표시합니다. " 서비스를 이용하세요. 나중에 다시 시도해 주세요.":

1、开发者在5秒内未回复任何内容
2、开发者回复了异常数据,比如JSON数据等
로그인 후 복사
回复文本消息
<xml><ToUserName><![CDATA[接收方帐号(收到的OpenID)]]></ToUserName><FromUserName><![CDATA[开发者微信号]]></FromUserName><CreateTime>消息创建时间 (整型)</CreateTime><MsgType><![CDATA[WeChat 개발 수동 응답 및 파일 업로드 및 다운로드]]></MsgType><Content><![CDATA[回复的消息内容(换行:在content中能够换行,微信客户端就支持换行显示)]]></Content></xml>
로그인 후 복사
回复图片消息
<xml><ToUserName><![CDATA[接收方帐号(收到的OpenID)]]></ToUserName><FromUserName><![CDATA[开发者微信号]]></FromUserName><CreateTime>消息创建时间 (整型)</CreateTime><MsgType><![CDATA[WeChat 개발 수동 응답 및 파일 업로드 및 다운로드]]></MsgType><Image><MediaId><![CDATA[通过上传多媒体文件,得到的id。]]></MediaId></Image></xml>
로그인 후 복사
回复语音消息
<xml><ToUserName><![CDATA[接收方帐号(收到的OpenID)]]></ToUserName><FromUserName><![CDATA[开发者微信号]]></FromUserName><CreateTime>消息创建时间 (整型)</CreateTime><MsgType><![CDATA[voice]]></MsgType><Voice><MediaId><![CDATA[通过上传多媒体文件,得到的id。]]></MediaId></Voice></xml>
로그인 후 복사
回复视频消息
<xml><ToUserName><![CDATA[接收方帐号(收到的OpenID)]]></ToUserName><FromUserName><![CDATA[开发者微信号]]></FromUserName><CreateTime>消息创建时间 (整型)</CreateTime><MsgType><![CDATA[video]]></MsgType><Video><MediaId><![CDATA[通过上传多媒体文件,得到的id。]]></MediaId><Title><![CDATA[视频消息的标题]]></Title>
<Description><![CDATA[视频消息的描述]]></Description>
</Video></xml>
로그인 후 복사
回复音乐消息
<xml><ToUserName><![CDATA[接收方帐号(收到的OpenID)]]></ToUserName><FromUserName><![CDATA[开发者微信号]]></FromUserName><CreateTime>消息创建时间 (整型)</CreateTime><MsgType><![CDATA[music]]></MsgType><Music><ThumbMediaId><![CDATA[缩略图的媒体id,通过上传多媒体文件,得到的id。]]></ThumbMediaId><Title><![CDATA[视频消息的标题]]></Title>
<Description><![CDATA[视频消息的描述]]></Description>
<MusicURL><![CDATA[音乐链接]]></MusicURL>
<HQMusicUrl><![CDATA[高质量音乐链接,WIFI环境优先使用该链接播放音乐]]></HQMusicUrl>
</Music></xml>
로그인 후 복사
回复图文消息
<xml><ToUserName><![CDATA[toUser]]></ToUserName><FromUserName><![CDATA[fromUser]]></FromUserName><CreateTime>12345678</CreateTime><MsgType><![CDATA[news]]></MsgType><ArticleCount>2</ArticleCount><Articles><item><Title><![CDATA[title1]]></Title> <Description><![CDATA[description1]]></Description><PicUrl><![CDATA[picurl]]></PicUrl><Url><![CDATA[url]]></Url></item><item><Title><![CDATA[title]]></Title><Description><![CDATA[description]]></Description><PicUrl><![CDATA[picurl]]></PicUrl><Url><![CDATA[url]]></Url></item></Articles></xml>
로그인 후 복사

回复图文中,item是一个项,一个item代码一个图文。在响应的时候,我们只需根据数据格式,替换掉对应的属性,然后Response.Write(s)即可。结合前两章的讲解,BaseMessage的最终代码如下:

/// <summary>
    /// 消息体基类    /// </summary>
    public abstract class BaseMessage
    {        /// <summary>
        /// 开发者微信号        /// </summary>
        public string ToUserName { get; set; }       /// <summary>
        /// 发送方帐号(一个OpenID)       /// </summary>
        public string FromUserName { get; set; }        /// <summary>
        /// 消息创建时间 (整型)        /// </summary>
        public string CreateTime { get; set; }        /// <summary>
        /// 消息类型        /// </summary>
        public MsgType MsgType { get; set; }        public virtual void ResponseNull()
        {
            Utils.ResponseWrite("");
        }        public virtual void ResText(EnterParam param, string content)
        {
            StringBuilder resxml = new StringBuilder(string.Format("<xml><ToUserName><![CDATA[{0}]]></ToUserName><FromUserName><![CDATA[{1}]]></FromUserName><CreateTime>{2}</CreateTime>", FromUserName, ToUserName, Utils.ConvertDateTimeInt(DateTime.Now)));
            resxml.AppendFormat("<MsgType><![CDATA[text]]></MsgType><Content><![CDATA[{0}]]></Content><FuncFlag>0</FuncFlag></xml>", content);
            Response(param, resxml.ToString());
        }        /// <summary>
        /// 回复消息(音乐)        /// </summary>
        public  void ResMusic(EnterParam param, Music mu)
        {
            StringBuilder resxml = new StringBuilder(string.Format("<xml><ToUserName><![CDATA[{0}]]></ToUserName><FromUserName><![CDATA[{1}]]></FromUserName><CreateTime>{2}</CreateTime>",FromUserName,ToUserName, Utils.ConvertDateTimeInt(DateTime.Now)));
            resxml.Append(" <MsgType><![CDATA[music]]></MsgType>");
            resxml.AppendFormat("<Music><Title><![CDATA[{0}]]></Title><Description><![CDATA[{1}]]></Description>", mu.Title, mu.Description);
            resxml.AppendFormat("<MusicUrl><![CDATA[http://{0}{1}]]></MusicUrl><HQMusicUrl><![CDATA[http://{2}{3}]]></HQMusicUrl></Music><FuncFlag>0</FuncFlag></xml>", VqiRequest.GetCurrentFullHost(), mu.MusicUrl, VqiRequest.GetCurrentFullHost(), mu.HQMusicUrl);
            Response(param, resxml.ToString());
        }        public  void ResVideo(EnterParam param, Video v)
        {
            StringBuilder resxml = new StringBuilder(string.Format("<xml><ToUserName><![CDATA[{0}]]></ToUserName><FromUserName><![CDATA[{1}]]></FromUserName><CreateTime>{2}</CreateTime>",FromUserName,ToUserName, Utils.ConvertDateTimeInt(DateTime.Now)));
            resxml.Append(" <MsgType><![CDATA[video]]></MsgType>");
            resxml.AppendFormat("<Video><MediaId><![CDATA[{0}]]></MediaId>", v.media_id);
            resxml.AppendFormat("<Title><![CDATA[{0}]]></Title>", v.title);
            resxml.AppendFormat("<Description><![CDATA[{0}]]></Description></Video></xml>", v.description);
            Response(param, resxml.ToString());
        }        /// <summary>
        /// 回复消息(图片)        /// </summary>
        public  void ResPicture(EnterParam param, Picture pic, string domain)
        {
            StringBuilder resxml = new StringBuilder(string.Format("<xml><ToUserName><![CDATA[{0}]]></ToUserName><FromUserName><![CDATA[{1}]]></FromUserName><CreateTime>{2}</CreateTime>",FromUserName,ToUserName, Utils.ConvertDateTimeInt(DateTime.Now)));
            resxml.Append(" <MsgType><![CDATA[WeChat 개발 수동 응답 및 파일 업로드 및 다운로드]]></MsgType>");
            resxml.AppendFormat("<PicUrl><![CDATA[{0}]]></PicUrl></xml>", domain + pic.PictureUrl);
            Response(param, resxml.ToString());
        }        /// <summary>
        /// 回复消息(图文列表)        /// </summary>
        /// <param name="param"></param>
        /// <param name="art"></param>
        public  void ResArticles(EnterParam param, List<Articles> art)
        {
            StringBuilder resxml = new StringBuilder(string.Format("<xml><ToUserName><![CDATA[{0}]]></ToUserName><FromUserName><![CDATA[{1}]]></FromUserName><CreateTime>{2}</CreateTime>",FromUserName,ToUserName, Utils.ConvertDateTimeInt(DateTime.Now)));
            resxml.AppendFormat("<MsgType><![CDATA[news]]></MsgType><ArticleCount>{0}</ArticleCount><Articles>", art.Count);            for (int i = 0; i < art.Count; i++)
            {
                resxml.AppendFormat("<item><Title><![CDATA[{0}]]></Title>  <Description><![CDATA[{1}]]></Description>", art[i].Title, art[i].Description);
                resxml.AppendFormat("<PicUrl><![CDATA[{0}]]></PicUrl><Url><![CDATA[{1}]]></Url></item>", art[i].PicUrl.Contains("http://") ? art[i].PicUrl : "http://" + VqiRequest.GetCurrentFullHost() + art[i].PicUrl, art[i].Url.Contains("http://") ? art[i].Url : "http://" + VqiRequest.GetCurrentFullHost() + art[i].Url);
            }
            resxml.Append("</Articles><FuncFlag>0</FuncFlag></xml>");
            Response(param, resxml.ToString());
        }        /// <summary>
        /// 多客服转发        /// </summary>
        /// <param name="param"></param>
        public  void ResDKF(EnterParam param)
        {
            StringBuilder resxml = new StringBuilder();
            resxml.AppendFormat("<xml><ToUserName><![CDATA[{0}]]></ToUserName>",FromUserName);
            resxml.AppendFormat("<FromUserName><![CDATA[{0}]]></FromUserName><CreateTime>{1}</CreateTime>",ToUserName,CreateTime);
            resxml.AppendFormat("<MsgType><![CDATA[transfer_customer_service]]></MsgType></xml>");
            Response(param, resxml.ToString());
        }        /// <summary>
        /// 多客服转发如果指定的客服没有接入能力(不在线、没有开启自动接入或者自动接入已满),该用户会一直等待指定客服有接入能力后才会被接入,而不会被其他客服接待。建议在指定客服时,先查询客服的接入能力指定到有能力接入的客服,保证客户能够及时得到服务。        /// </summary>
        /// <param name="param">用户发送的消息体</param>
        /// <param name="KfAccount">多客服账号</param>
        public  void ResDKF(EnterParam param, string KfAccount)
        {
            StringBuilder resxml = new StringBuilder();
            resxml.AppendFormat("<xml><ToUserName><![CDATA[{0}]]></ToUserName>",FromUserName);
            resxml.AppendFormat("<FromUserName><![CDATA[{0}]]></FromUserName><CreateTime>{1}</CreateTime>",ToUserName,CreateTime);
            resxml.AppendFormat("<MsgType><![CDATA[transfer_customer_service]]></MsgType><TransInfo><KfAccount>{0}</KfAccount></TransInfo></xml>", KfAccount);
            Response(param, resxml.ToString());
        }        private  void Response(EnterParam param, string data)
        {            if (param.IsAes)
            {                var wxcpt = new MsgCrypt(param.token, param.EncodingAESKey, param.appid);
                wxcpt.EncryptMsg(data, Utils.ConvertDateTimeInt(DateTime.Now).ToString(), Utils.GetRamCode(), ref data);
            }
            Utils.ResponseWrite(data);

        }
    }
로그인 후 복사

上面的代码中,public void ResDKF(EnterParam param),public void ResDKF(EnterParam param, string KfAccount)两个方法时多客服中,用户转发用户发送的消息的,多客服将在后期的博文中进行更新,敬请期待。

public void ResMusic(EnterParam param, Music mu)方法中的Music类的定义如下:

public class Music
    {        #region 属性        /// <summary>
        /// 音乐链接        /// </summary>
        public string MusicUrl { get; set; }        /// <summary>
        /// 高质量音乐链接,WIFI环境优先使用该链接播放音乐        /// </summary>
        public string HQMusicUrl { get; set; }        /// <summary>
        /// 标题        /// </summary>
        public string Title { get; set; }        /// <summary>
        /// 描述        /// </summary>
        public string Description { get; set; }        #endregion
    }
로그인 후 복사

public void ResVideo(EnterParam param, Video v)方法中的Video类的定义如下:

public class Video
    {        public string title { get; set; }        public string media_id { get; set; }        public string description { get; set; }
    }
로그인 후 복사

public void ResArticles(EnterParam param, List art)中的Articles定义如下:

public class Articles
    {        #region 属性        /// <summary>
        /// 图文消息标题        /// </summary>
        public string Title { get; set; }        /// <summary>
        /// 图文消息描述        /// </summary>
        public string Description { get; set; }        /// <summary>
        /// 图片链接,支持JPG、PNG格式,较好的效果为大图640*320,小图80*80。        /// </summary>
        public string PicUrl { get; set; }        /// <summary>
        /// 点击图文消息跳转链接        /// </summary>
        public string Url { get; set; }        #endregion
    }
로그인 후 복사

【相关推荐】

1.微信公众号平台源码下载

2.微信投票源码

위 내용은 WeChat 개발 수동 응답 및 파일 업로드 및 다운로드의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

AI Hentai를 무료로 생성하십시오.

인기 기사

R.E.P.O. 에너지 결정과 그들이하는 일 (노란색 크리스탈)
3 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 최고의 그래픽 설정
3 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 아무도들을 수없는 경우 오디오를 수정하는 방법
3 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25 : Myrise에서 모든 것을 잠금 해제하는 방법
4 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

PHP WeChat 개발: 메시지 암호화 및 암호 해독 구현 방법 PHP WeChat 개발: 메시지 암호화 및 암호 해독 구현 방법 May 13, 2023 am 11:40 AM

PHP는 웹 개발 및 서버 측 프로그래밍, 특히 WeChat 개발에 널리 사용되는 오픈 소스 스크립팅 언어입니다. 오늘날 점점 더 많은 회사와 개발자가 WeChat 개발에 PHP를 사용하기 시작하고 있습니다. PHP는 배우기 쉽고 사용하기 쉬운 개발 언어이기 때문입니다. WeChat 개발에서 메시지 암호화 및 복호화는 데이터 보안과 관련되어 있기 때문에 매우 중요한 문제입니다. 암호화 및 복호화 방법이 없는 메시지의 경우 해커가 쉽게 데이터를 획득할 수 있어 사용자에게 위협이 될 수 있습니다.

PHP를 사용하여 WeChat 대량 메시징 도구 개발 PHP를 사용하여 WeChat 대량 메시징 도구 개발 May 13, 2023 pm 05:00 PM

WeChat의 인기로 인해 점점 더 많은 기업이 WeChat을 마케팅 도구로 사용하기 시작했습니다. WeChat 그룹 메시징 기능은 기업이 WeChat 마케팅을 수행하는 중요한 수단 중 하나입니다. 그러나 수동 전송에만 의존한다면 마케팅 담당자에게는 매우 시간이 많이 걸리고 힘든 작업입니다. 따라서 WeChat 대량 메시징 도구를 개발하는 것이 특히 중요합니다. 이 기사에서는 PHP를 사용하여 WeChat 대량 메시징 도구를 개발하는 방법을 소개합니다. 1. 준비 작업 WeChat 대량 메시징 도구를 개발하려면 다음 기술 사항을 숙지해야 합니다. PHP WeChat 공개 플랫폼 개발에 대한 기본 지식 개발 도구: Sub

PHP WeChat 개발: 사용자 태그 관리 구현 방법 PHP WeChat 개발: 사용자 태그 관리 구현 방법 May 13, 2023 pm 04:31 PM

WeChat 공개 계정 개발에서 사용자 태그 관리는 개발자가 사용자를 더 잘 이해하고 관리할 수 있도록 하는 매우 중요한 기능입니다. 이 기사에서는 PHP를 사용하여 WeChat 사용자 태그 관리 기능을 구현하는 방법을 소개합니다. 1. WeChat 사용자의 openid를 획득합니다. WeChat 사용자 태그 관리 기능을 사용하기 전에 먼저 사용자의 openid를 획득해야 합니다. WeChat 공개 계정을 개발할 때 사용자 인증을 통해 openid를 얻는 것이 일반적인 관행입니다. 사용자 인증이 완료되면 다음 코드를 통해 사용자를 얻을 수 있습니다.

PHP WeChat 개발: 그룹 메시지 전송 기록을 구현하는 방법 PHP WeChat 개발: 그룹 메시지 전송 기록을 구현하는 방법 May 13, 2023 pm 04:31 PM

WeChat이 사람들의 삶에서 점점 더 중요한 커뮤니케이션 도구가 되면서, WeChat의 민첩한 메시징 기능은 많은 기업과 개인의 선호를 빠르게 받고 있습니다. 기업의 경우 WeChat을 마케팅 플랫폼으로 개발하는 것이 하나의 추세가 되었으며 WeChat 개발의 중요성은 점차 더욱 부각되고 있습니다. 그 중 그룹 전송 기능이 더욱 널리 사용됩니다. 그렇다면 PHP 프로그래머로서 그룹 메시지 전송 기록을 어떻게 구현해야 할까요? 다음은 간략한 소개입니다. 1. WeChat 공개 계정과 관련된 개발 지식을 이해합니다. 그룹 메시지 전송 기록을 구현하는 방법을 이해합니다.

PHP WeChat 개발: 고객 서비스 채팅 창 관리 구현 방법 PHP WeChat 개발: 고객 서비스 채팅 창 관리 구현 방법 May 13, 2023 pm 05:51 PM

WeChat은 현재 세계에서 가장 큰 사용자 기반을 보유한 소셜 플랫폼 중 하나입니다. 모바일 인터넷의 인기로 인해 점점 더 많은 기업들이 WeChat 마케팅의 중요성을 깨닫기 시작했습니다. WeChat 마케팅을 수행할 때 고객 서비스는 중요한 부분입니다. 고객 서비스 채팅 창을 더 잘 관리하기 위해 WeChat 개발에 PHP 언어를 사용할 수 있습니다. 1. PHP 소개 WeChat 개발 PHP는 웹 개발 분야에서 널리 사용되는 오픈 소스 서버 측 스크립팅 언어입니다. WeChat 공개 플랫폼에서 제공하는 개발 인터페이스와 결합하여 PHP 언어를 사용하여 WeChat을 수행할 수 있습니다.

PHP WeChat 개발: 투표 기능 구현 방법 PHP WeChat 개발: 투표 기능 구현 방법 May 14, 2023 am 11:21 AM

WeChat 공개 계정을 개발할 때 투표 기능이 자주 사용됩니다. 투표 기능은 사용자들이 상호 작용에 빠르게 참여할 수 있는 좋은 방법이며, 이벤트 개최 및 의견 조사를 위한 중요한 도구이기도 합니다. 이 기사에서는 PHP를 사용하여 WeChat 투표 기능을 구현하는 방법을 소개합니다. WeChat 공식 계정 승인을 받으려면 먼저 WeChat 공식 계정 승인을 받아야 합니다. WeChat 공개 플랫폼에서는 WeChat 공개 계정, 공식 계정 및 공개 계정에 해당하는 토큰의 API 주소를 구성해야 합니다. PHP 언어를 사용하여 개발하는 과정에서 WeChat에서 공식적으로 제공하는 PH를 사용해야 합니다.

PHP WeChat 개발: 음성 인식 구현 방법 PHP WeChat 개발: 음성 인식 구현 방법 May 13, 2023 pm 09:31 PM

모바일 인터넷의 인기로 인해 점점 더 많은 사람들이 WeChat을 소셜 소프트웨어로 사용하고 있으며 WeChat 개방형 플랫폼은 개발자에게도 많은 기회를 제공합니다. 최근 인공지능 기술의 발전과 함께 음성인식 기술은 점차 모바일 단말기 개발에 있어서 대중적인 기술 중 하나로 자리잡고 있다. WeChat 개발에서 음성 인식을 구현하는 방법은 많은 개발자의 관심사가 되었습니다. 이 기사에서는 PHP를 사용하여 음성 인식 기능을 구현하는 WeChat 애플리케이션을 개발하는 방법을 소개합니다. 1. 음성인식의 원리 음성인식 구현 방법을 소개하기 전에 먼저 언어에 대한 이해를 해보자.

WeChat 개발에 PHP를 사용하는 방법은 무엇입니까? WeChat 개발에 PHP를 사용하는 방법은 무엇입니까? May 21, 2023 am 08:37 AM

인터넷과 모바일 스마트 기기의 발전으로 WeChat은 소셜 및 마케팅 분야에서 없어서는 안될 부분이 되었습니다. 점점 더 디지털화되는 시대에 WeChat 개발에 PHP를 사용하는 방법은 많은 개발자의 초점이 되었습니다. 이 기사에서는 주로 WeChat 개발에 PHP를 사용하는 방법에 대한 관련 지식 포인트와 일부 팁 및 주의 사항을 소개합니다. 1. 개발 환경 준비 WeChat을 개발하기 전에 먼저 해당 개발 환경을 준비해야 합니다. 특히, PHP 운영 환경과 WeChat 공개 플랫폼을 설치해야 합니다.

See all articles