欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

微信公眾平臺(tái)開(kāi)發(fā)之高級(jí)接口的示例分析-創(chuàng)新互聯(lián)

這篇文章主要為大家展示了“微信公眾平臺(tái)開(kāi)發(fā)之高級(jí)接口的示例分析”,內(nèi)容簡(jiǎn)而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領(lǐng)大家一起研究并學(xué)習(xí)一下“微信公眾平臺(tái)開(kāi)發(fā)之高級(jí)接口的示例分析”這篇文章吧。

創(chuàng)新互聯(lián)公司是一家專(zhuān)注于網(wǎng)站制作、成都網(wǎng)站制作與策劃設(shè)計(jì),邊壩網(wǎng)站建設(shè)哪家好?創(chuàng)新互聯(lián)公司做網(wǎng)站,專(zhuān)注于網(wǎng)站建設(shè)十年,網(wǎng)設(shè)計(jì)領(lǐng)域的專(zhuān)業(yè)建站公司;建站業(yè)務(wù)涵蓋:邊壩等地區(qū)。邊壩做網(wǎng)站價(jià)格咨詢(xún):18982081108

這里所說(shuō)的高級(jí)接口是指面向通過(guò)認(rèn)證的服務(wù)號(hào)開(kāi)通的高級(jí)功能。

高級(jí)功能大致可以分類(lèi)為:

用戶(hù)接口

分組接口

客服接口(有別于之前介紹的多客服)

群發(fā)接口

多媒體接口

二維碼接口

模板消息接口(不是所有賬號(hào)都可開(kāi)通)

OAuth3.0(相對(duì)比較復(fù)雜,后面會(huì)有專(zhuān)門(mén)介紹)

以上所有的接口都包含在Senparc.Weixin.MP.AdvancedAPIs命名空間下。

一些共同的操作

幾乎所有的高級(jí)接口都需要用到AccessToken來(lái)通訊(注意,下面如果沒(méi)有特殊說(shuō)明的接口都需要這個(gè)AccessToken,但并非所有),因此多數(shù)會(huì)有一個(gè)AccessToken參數(shù)傳入,有關(guān)AccessToken獲取和操作的方式見(jiàn)Senparc.Weixin.MP SDK 微信公眾平臺(tái)開(kāi)發(fā)教程(八):通用接口說(shuō)明。

用戶(hù)接口

源文件文件夾:Senparc.Weixin.MP/AdvancedAPIs/User

源代碼中相關(guān)方法如下:

namespace Senparc.Weixin.MP.AdvancedAPIs
{
    //接口詳見(jiàn):http://mp.weixin.qq.com/wiki/index.php?title=%E8%8E%B7%E5%8F%96%E7%94%A8%E6%88%B7%E5%9F%BA%E6%9C%AC%E4%BF%A1%E6%81%AF
    
    /// <summary>
    /// 用戶(hù)接口
    /// </summary>
    public static class User
    {
        /// <summary>
        /// 獲取用戶(hù)信息
        /// </summary>
        /// <param name="accessToken">調(diào)用接口憑證</param>
        /// <param name="openId">普通用戶(hù)的標(biāo)識(shí),對(duì)當(dāng)前公眾號(hào)</param>
        /// <param name="lang">返回國(guó)家地區(qū)語(yǔ)言版本,zh_CN 簡(jiǎn)體,zh_TW 繁體,en 英語(yǔ)</param>
        /// <returns></returns>
        public static UserInfoJson Info(string accessToken, string openId, Language.zh_CN)
        {
            string url = string.Format("/tupian/20230522/info
                accessToken, openId, lang.ToString());
            return HttpUtility.Get.GetJson<UserInfoJson>(url);

            //錯(cuò)誤時(shí)微信會(huì)返回錯(cuò)誤碼等信息,JSON數(shù)據(jù)包示例如下(該示例為AppID無(wú)效錯(cuò)誤):
            //{"errcode":40013,"errmsg":"invalid appid"}
        }

        /// <summary>
        /// 獲取關(guān)注著OpenId信息
        /// </summary>
        /// <param name="accessToken"></param>
        /// <param name="nextOpenId"></param>
        /// <returns></returns>
        public static OpenIdResultJson Get(string accessToken, string nextOpenId)
        {
            string url = string.Format("/tupian/20230522/get
                accessToken);
            if (!string.IsNullOrEmpty(nextOpenId))
            {
                url += "&next_openid=" + nextOpenId;
            }
            return HttpUtility.Get.GetJson<OpenIdResultJson>(url);
        }
    }
}

分組接口

源文件文件夾:Senparc.Weixin.MP/AdvancedAPIs/Groups

源代碼中相關(guān)方法如下:

namespace Senparc.Weixin.MP.AdvancedAPIs
{
    /// <summary>
    /// 用戶(hù)組接口
    /// </summary>
    public static class Groups
    {

        /// <summary>
        /// 創(chuàng)建分組
        /// </summary>
        /// <returns></returns>
        public static CreateGroupResult Create(string accessToken, string name)
        {
            var urlFormat = "/tupian/20230522/create
            var data = new
            {
                group = new
                {
                    name = name
                }
            };
            return CommonJsonSend.Send<CreateGroupResult>(accessToken, urlFormat, data);
        }

        /// <summary>
        /// 發(fā)送文本信息
        /// </summary>
        /// <param name="accessToken"></param>
        /// <returns></returns>
        public static GroupsJson Get(string accessToken)
        {
            var urlFormat = "/tupian/20230522/get
            var url = string.Format(urlFormat, accessToken);
            return HttpUtility.Get.GetJson<GroupsJson>(url);
        }

        /// <summary>
        /// 獲取用戶(hù)分組
        /// </summary>
        /// <param name="accessToken"></param>
        /// <param name="openId"></param>
        /// <returns></returns>
        public static GetGroupIdResult GetId(string accessToken, string openId)
        {
            var urlFormat = "/tupian/20230522/getid
            var data = new { openid = openId };
            return CommonJsonSend.Send<GetGroupIdResult>(accessToken, urlFormat, data);
        }

        /// <summary>
        /// 創(chuàng)建分組
        /// </summary>
        /// <param name="accessToken"></param>
        /// <param name="id"></param>
        /// <param name="name">分組名字(30個(gè)字符以?xún)?nèi))</param>
        /// <returns></returns>
        public static WxJsonResult Update(string accessToken, int id, string name)
        {
            var urlFormat = "/tupian/20230522/update
            var data = new
            {
                group = new
                {
                    id = id,
                    name = name
                }
            };
            return CommonJsonSend.Send(accessToken, urlFormat, data);
        }

        /// <summary>
        /// 移動(dòng)用戶(hù)分組
        /// </summary>
        /// <param name="accessToken"></param>
        /// <param name="openId"></param>
        /// <param name="toGroupId"></param>
        /// <returns></returns>
        public static WxJsonResult MemberUpdate(string accessToken, string openId, int toGroupId)
                {
            var urlFormat = "/tupian/20230522/update
            var data = new
            {
                openid = openId,
                to_groupid = toGroupId
            };
            return CommonJsonSend.Send(accessToken, urlFormat, data);
        }
    }
}

客服接口

說(shuō)明一下,這里的客服接口和之前的“多客服”是有差別的,之前介紹的多客服是把用戶(hù)對(duì)話(huà)狀態(tài)切換到多客服客,消息發(fā)送到專(zhuān)門(mén)的多客服戶(hù)端,這個(gè)對(duì)話(huà)是由用戶(hù)主動(dòng)發(fā)起的。而這里的“客服”實(shí)際上是指在任意時(shí)間,主動(dòng)推送消息給指定過(guò)的用戶(hù)(用戶(hù)在48小時(shí)內(nèi)有過(guò)互動(dòng)),對(duì)話(huà)不需要由用戶(hù)主動(dòng)發(fā)起。

源文件文件夾:Senparc.Weixin.MP/AdvancedAPIs/Custom

源代碼中相關(guān)方法如下:

namespace Senparc.Weixin.MP.AdvancedAPIs
{
    /// <summary>
    /// 客服接口
    /// </summary>
    public static class Custom
    {
        private const string URL_FORMAT = "/tupian/20230522/send

        /// <summary>
        /// 發(fā)送文本信息
        /// </summary>
        /// <param name="accessToken"></param>
        /// <param name="openId"></param>
        /// <param name="content"></param>
        /// <returns></returns>
        public static WxJsonResult SendText(string accessToken, string openId, string content)
        {
            var data = new
            {
                touser = openId,
                msgtype = "text",
                text = new
                {
                    content = content
                }
            };
            return CommonJsonSend.Send(accessToken, URL_FORMAT, data);
        }

        /// <summary>
        /// 發(fā)送圖片消息
        /// </summary>
        /// <param name="accessToken"></param>
        /// <param name="openId"></param>
        /// <param name="mediaId"></param>
        /// <returns></returns>
        public static WxJsonResult SendImage(string accessToken, string openId, string mediaId)
        {
            var data = new
            {
                touser = openId,
                msgtype = "image",
                image = new
                {
                    media_id = mediaId
                }
            };
            return CommonJsonSend.Send(accessToken, URL_FORMAT, data);
        }

        /// <summary>
        /// 發(fā)送語(yǔ)音消息
        /// </summary>
        /// <param name="accessToken"></param>
        /// <param name="openId"></param>
        /// <param name="mediaId"></param>
        /// <returns></returns>
        public static WxJsonResult SendVoice(string accessToken, string openId, string mediaId)
        {
            var data = new
            {
                touser = openId,
                msgtype = "voice",
                voice = new
                {
                    media_id = mediaId
                }
            };
            return CommonJsonSend.Send(accessToken, URL_FORMAT, data);
        }

        /// <summary>
        /// 發(fā)送視頻消息
        /// </summary>
        /// <param name="accessToken"></param>
        /// <param name="openId"></param>
        /// <param name="mediaId"></param>
        /// <param name="thumbMediaId"></param>
        /// <returns></returns>
        public static WxJsonResult SendVideo(string accessToken, string openId, string mediaId, string thumbMediaId)
        {
            var data = new
            {
                touser = openId,
                msgtype = "video",
                video = new
                {
                    media_id = mediaId,
                    thumb_media_id = thumbMediaId
                }
            };
            return CommonJsonSend.Send(accessToken, URL_FORMAT, data);
        }

        /// <summary>
        /// 發(fā)送音樂(lè)消息
        /// </summary>
        /// <param name="accessToken"></param>
        /// <param name="openId"></param>
        /// <param name="title">音樂(lè)標(biāo)題(非必須)</param>
        /// <param name="description">音樂(lè)描述(非必須)</param>
        /// <param name="musicUrl">音樂(lè)鏈接</param>
        /// <param name="hqMusicUrl">高品質(zhì)音樂(lè)鏈接,wifi環(huán)境優(yōu)先使用該鏈接播放音樂(lè)</param>
        /// <param name="thumbMediaId">視頻縮略圖的媒體ID</param>
        /// <returns></returns>
        public static WxJsonResult SendMusic(string accessToken, string openId, string title, string description,
                                    string musicUrl, string hqMusicUrl, string thumbMediaId)
        {
            var data = new
            {
                touser = openId,
                msgtype = "music",
                music = new
                {
                    title = title,
                    description = description,
                    musicurl = musicUrl,
                    hqmusicurl = hqMusicUrl,
                    thumb_media_id = thumbMediaId
                }
            };
            return CommonJsonSend.Send(accessToken, URL_FORMAT, data);
        }

        /// <summary>
        /// 發(fā)送圖文消息
        /// </summary>
        /// <param name="accessToken"></param>
        /// <param name="openId"></param>
        /// <param name="title">音樂(lè)標(biāo)題(非必須)</param>
        /// <param name="description">音樂(lè)描述(非必須)</param>
        /// <param name="musicUrl">音樂(lè)鏈接</param>
        /// <param name="hqMusicUrl">高品質(zhì)音樂(lè)鏈接,wifi環(huán)境優(yōu)先使用該鏈接播放音樂(lè)</param>
        /// <param name="thumbMediaId">視頻縮略圖的媒體ID</param>
        /// <returns></returns>
        public static WxJsonResult SendNews(string accessToken, string openId, List<Article> articles)
        {
            var data = new
            {
                touser = openId,
                msgtype = "news",
                news = new
                {
                    articles = articles.Select(z => new
                                {
                                    title = z.Title,
                                    description = z.Description,
                                    url = z.Url,
                                    picurl = z.PicUrl//圖文消息的圖片鏈接,支持JPG、PNG格式,較好的效果為大圖640*320,小圖80*80
                                }).ToList()
                }
            };
            return CommonJsonSend.Send(accessToken, URL_FORMAT, data);
        }
    }
}

群發(fā)接口

這里的群發(fā)效果和登錄微信后臺(tái)群發(fā)是一樣的。

源文件文件夾:Senparc.Weixin.MP/AdvancedAPIs/GroupMessage

源代碼中相關(guān)方法如下:

namespace Senparc.Weixin.MP.AdvancedAPIs
{
    /// <summary>
    /// 高級(jí)群發(fā)接口
    /// </summary>
    public static class GroupMessage
    {
        /// <summary>
        /// 根據(jù)分組進(jìn)行群發(fā)
        /// 
        /// 請(qǐng)注意:
        /// 1、該接口暫時(shí)僅提供給已微信認(rèn)證的服務(wù)號(hào)
        /// 2、雖然開(kāi)發(fā)者使用高級(jí)群發(fā)接口的每日調(diào)用限制為100次,但是用戶(hù)每月只能接收4條,請(qǐng)小心測(cè)試
        /// 3、無(wú)論在公眾平臺(tái)網(wǎng)站上,還是使用接口群發(fā),用戶(hù)每月只能接收4條群發(fā)消息,多于4條的群發(fā)將對(duì)該用戶(hù)發(fā)送失敗。
        /// 
        /// </summary>
        /// <param name="accessToken"></param>
        /// <param name="groupId">群發(fā)到的分組的group_id</param>
        /// <param name="mediaId">用于群發(fā)的消息的media_id</param>
        /// <returns></returns>
        public static SendResult SendGroupMessageByGroupId(string accessToken, string groupId, string mediaId)
        {
            const string urlFormat = "/tupian/20230522/sendall
            var data = new
            {
                filter = new
                {
                    group_id = groupId
                },
                mpnews = new
                {
                    media_id = mediaId
                },
                msgtype = "mpnews"
            };
            return CommonJsonSend.Send<SendResult>(accessToken, urlFormat, data);
        }

        /// <summary>
        /// 根據(jù)OpenId進(jìn)行群發(fā)
        /// </summary>
        /// <param name="accessToken"></param>
        /// <param name="mediaId">用于群發(fā)的消息的media_id</param>
        /// <param name="openIds">openId字符串?dāng)?shù)組</param>
        /// <returns></returns>
        public static SendResult SendGroupMessageByOpenId(string accessToken, string mediaId, params string[] openIds)
        {
            const string urlFormat = "/tupian/20230522/send

            var data = new
            {
                touser = openIds,
                mpnews = new
                {
                    media_id = mediaId
                },
                msgtype = "mpnews"
            };
            return CommonJsonSend.Send<SendResult>(accessToken, urlFormat, data);
        }

        /// <summary>
        /// 刪除群發(fā)消息
        /// </summary>
        /// <param name="accessToken"></param>
        /// <param name="mediaId">發(fā)送出去的消息ID</param>
        /// <returns></returns>
        public static WxJsonResult DeleteSendMessage(string accessToken, string mediaId)
        {
            //官方API地址為https://api.weixin.qq.com//cgi-bin/message/mass/delete?access_token={0},應(yīng)該是多了一個(gè)/
            const string urlFormat = "/tupian/20230522/delete

            var data = new
            {
                msgid = mediaId
            };
            return CommonJsonSend.Send<WxJsonResult>(accessToken, urlFormat, data);
        }
    }
}

多媒體接口

多媒體接口用于上傳圖片、語(yǔ)音、圖文消息等多媒體信息,一般這些信息都可以用于客服接口或群發(fā)。

源文件文件夾:Senparc.Weixin.MP/AdvancedAPIs/Media

源代碼中相關(guān)方法如下:

namespace Senparc.Weixin.MP.AdvancedAPIs
{
    //接口詳見(jiàn):http://mp.weixin.qq.com/wiki/index.php?title=%E4%B8%8A%E4%BC%A0%E4%B8%8B%E8%BD%BD%E5%A4%9A%E5%AA%92%E4%BD%93%E6%96%87%E4%BB%B6
    
    /// <summary>
    /// 多媒體文件接口
    /// </summary>
    public static class Media
    {
        /// <summary>
        /// 上傳媒體文件
        /// </summary>
        /// <param name="accessToken"></param>
        /// <param name="type"></param>
        /// <param name="file"></param>
        /// <returns></returns>
        public static UploadResultJson Upload(string accessToken, UploadMediaFileType type, string file)
        {
            var url = string.Format("/tupian/20230522/upload
            var fileDictionary = new Dictionary<string, string>();
            fileDictionary["media"] = file;
            return HttpUtility.Post.PostFileGetJson<UploadResultJson>(url, null, fileDictionary, null);
        }

        /// <summary>
        /// 下載媒體文件
        /// </summary>
        /// <param name="accessToken"></param>
        /// <param name="mediaId"></param>
        /// <param name="stream"></param>
        public static void Get(string accessToken, string mediaId, Stream stream)
        {
            var url = string.Format("/tupian/20230522/get
                accessToken, mediaId);
            HttpUtility.Get.Download(url, stream);
        }

        /// <summary>
        /// 上傳圖文消息素材
        /// </summary>
        /// <param name="accessToken">Token</param>
        /// <param name="news">圖文消息組</param>
        /// <returns></returns>
        public static UploadMediaFileResult UploadNews(string accessToken, params NewsModel[] news)
        {
            const string urlFormat = "/tupian/20230522/uploadnews
            var data = new
            {
                articles = news
            };
            return CommonJsonSend.Send<UploadMediaFileResult>(accessToken, urlFormat, data);
        }


    }
}

二維碼接口

使用二維碼接口可以方便地創(chuàng)建和驗(yàn)證二維碼。所創(chuàng)建的二維碼用于讓用戶(hù)關(guān)注或識(shí)別掃描的場(chǎng)景。

源文件文件夾:Senparc.Weixin.MP/AdvancedAPIs/QrCode

源代碼中相關(guān)方法如下:

namespace Senparc.Weixin.MP.AdvancedAPIs
{
    //API:http://mp.weixin.qq.com/wiki/index.php?title=%E7%94%9F%E6%88%90%E5%B8%A6%E5%8F%82%E6%95%B0%E7%9A%84%E4%BA%8C%E7%BB%B4%E7%A0%81

    /// <summary>
    /// 二維碼接口
    /// </summary>
    public static class QrCode
    {
        /// <summary>
        /// 創(chuàng)建二維碼
        /// </summary>
        /// <param name="expireSeconds">該二維碼有效時(shí)間,以秒為單位。 較大不超過(guò)1800。0時(shí)為永久二維碼</param>
        /// <param name="sceneId">場(chǎng)景值ID,臨時(shí)二維碼時(shí)為32位整型,永久二維碼時(shí)較大值為1000</param>
        /// <returns></returns>
        public static CreateQrCodeResult Create(string accessToken, int expireSeconds, int sceneId)
        {
            var urlFormat = "/tupian/20230522/create
            object data = null;
            if (expireSeconds > 0)
            {
                data = new
                {
                    expire_seconds = expireSeconds,
                    action_name = "QR_SCENE",
                    action_info = new
                    {
                        scene = new
                        {
                            scene_id = sceneId
                        }
                    }
                };
            }
            else
            {
                data = new
                {
                    action_name = "QR_LIMIT_SCENE",
                    action_info = new
                    {
                        scene = new
                        {
                            scene_id = sceneId
                        }
                    }
                };
            }
            return CommonJsonSend.Send<CreateQrCodeResult>(accessToken, urlFormat, data);
        }

        /// <summary>
        /// 獲取二維碼(不需要AccessToken)
        /// 錯(cuò)誤情況下(如ticket非法)返回HTTP錯(cuò)誤碼404。
        /// </summary>
        /// <param name="ticket"></param>
        /// <param name="stream"></param>
        public static void ShowQrCode(string ticket, Stream stream)
        {
            var urlFormat = "https://mp.weixin.qq.com/cgi-bin/showqrcode?ticket={0}";
            HttpUtility.Get.Download(string.Format(urlFormat, ticket), stream);
        }
    }
}

模板消息接口

模板消息類(lèi)似于短信通知,它遵循一定的模板格式(和圖文信息等不一樣),不是每個(gè)通過(guò)驗(yàn)證的服務(wù)號(hào)都可以獲取。

源文件文件夾:Senparc.Weixin.MP/AdvancedAPIs/TemplateMessage

源代碼中相關(guān)方法如下:

namespace Senparc.Weixin.MP.AdvancedAPIs
{
    /// <summary>
    /// 模板消息接口
    /// </summary>
    public static class Template
    {
        public static WxJsonResult SendTemplateMessage<T>(string accessToken, string openId, string templateId, string topcolor, T data)
        {
            const string urlFormat = "/tupian/20230522/send
            var msgData = new TempleteModel()
            {
                template_id = templateId,
                topcolor = topcolor,
                touser = openId,
                data = data
            };
            return CommonJsonSend.Send<WxJsonResult>(accessToken, urlFormat, msgData);
        }
    }
}

OAuth3.0接口

OAuth接口用于安全驗(yàn)證使用微信內(nèi)嵌瀏覽器訪(fǎng)問(wèn)的用戶(hù)的身份(例如獲取OpenId)

源文件文件夾:Senparc.Weixin.MP/AdvancedAPIs/OAuth

以上是“微信公眾平臺(tái)開(kāi)發(fā)之高級(jí)接口的示例分析”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對(duì)大家有所幫助,如果還想學(xué)習(xí)更多知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!

當(dāng)前標(biāo)題:微信公眾平臺(tái)開(kāi)發(fā)之高級(jí)接口的示例分析-創(chuàng)新互聯(lián)
新聞來(lái)源:http://chinadenli.net/article14/dhgoge.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供商城網(wǎng)站、網(wǎng)站策劃、關(guān)鍵詞優(yōu)化、網(wǎng)站內(nèi)鏈品牌網(wǎng)站建設(shè)、響應(yīng)式網(wǎng)站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀(guān)點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話(huà):028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

成都seo排名網(wǎng)站優(yōu)化