中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

微信快速開發框架(WXPP QuickFramework)V2.0版本上線--源碼已更新至github

發布時間:2020-06-13 13:17:05 來源:網絡 閱讀:1084 作者:inday 欄目:編程語言

4月28日,已增加多媒體上傳及下載API,對應MediaUploadRequest和MediaGetRequest

----------------------------------------------------------------------------

4月24日,感謝@八二制造的提醒,修復了自定義菜單查詢返回的錯誤,現已修正。

-----------------------------------------------------------------------------

4月21日,框架類庫已更新至NuGet,在NuGet中搜索JCSoft或者Weixin就能查到,感謝大家的支持,后續會把Outh3驗證加上

NuGet控制臺使用方法:

PM> Install-Package JCSoft.WX.Framework

----------------------------------------------------

用了一個多星期的時間,把微信快速開發框架進行了改進,之前1.0版本針對的是普通訂閱號,V2.0版本將會對微信所有接口都進行支持。樓主開發的目的也是想讓大家能夠快速建立起微信公眾平臺(WXPP),據說現在開發個微信公眾平臺月薪可以達到10K,如果您覺得好,也可以捐助樓主一下,哈哈。

好久沒被首推了,現在怎么申請首推啊?

此次更新的內容:

1、去除了Model類庫,合并到WX.Framework類庫

2、增加了對高級接口的支持

3、增加了API調用方式

4、支持獲取AccessToken

5、增加了測試代碼

6、增加群發功能,包括群發后時間的響應。

這次更新的內容較多,我會一一來演示給大家看的,目前還未支持上傳和下載媒體文件,對于微信文檔中說的Post/Form方式不太了解,示例也用了CURL,這個更不了解了。

微信公眾平臺類型

如果您剛解除微信公眾平臺,可以參考【建立微信公眾平臺測試賬號】,目前微信公眾平臺賬號類型分為:訂閱號,服務號,賬號類型的不同,所支持的接口也不相同:

微信快速開發框架(WXPP QuickFramework)V2.0版本上線--源碼已更新至github

之前1.0版本僅僅支持訂閱號未認證的情況。1.0版本的使用可以參考:【體驗微信公眾平臺快速開發框架】和【利用快速開發框架,快速搭建微信瀏覽博客園首頁文章】

通過實現IMessageRole.MessageRole(MiddleMessage message)和IMessageHandler.HandlerRequestMessage(MiddleMessage message),自定義規則和返回數據。在此不再重復表述。

V2.0支持自定義菜單及高級接口

V2.0已經基本支持自定義菜單及高級接口,自定義菜單和高級接口采用API方式與微信服務器端交互。

IApiClient:Api接口類

DefaultApiClient:實現了IApiClient的Execute方法

ApiResponse:微信服務端返回的數據,這個是個抽象類,所有繼承的Response在WX.Model.Responses命名空間內

ApiRequest<ApiResponse>:發送到微信服務器短的數據,也是個抽象類,所有與之相關的Request都在WX.Model.Requests命名空間內

ApiRequest<ApiResponse>與ApiResponse是一一對應的關系。

ApiAccessTokenManager:因為自定義菜單及高級接口都需要AccessToken,所以寫了一個TokenManager,使用的是單例模式,如果您想使用此類,您必須在配置文件中提供:wxappid和wxappsecret的值,也可以通過ApiAccessTokenManager.Instance.SetAppIdentity(appid, appsecret)初始設置。

示例一:獲取AccessToken

上述已經說明,在自定義菜單和高級接口中,都需要提供AccessToken,AccessToken的獲取方式可以查看微信平臺文檔。

自定義獲取AccessToken方式:

         var appid = new AppIdentication("appid", "appsecret");
            var request = new AccessTokenRequest(appid);
            IApiClient client = new DefaultApiClient();
            var response = client.Execute(request);
            if (response.IsError)
            {
                Console.WriteLine("get token is error");
            }
            else
            {
                Console.WriteLine(response.Access_Token);
            }

使用ApiAccessTokenManager獲取AccessToken:

ApiAccessTokenManager.Instance.GetCurrentToken();

使用ApiAccessTokenManager的話,必須先設置AppId和AppSecret,有2種方式:

1、配置文件方式:

<configuration>
  <appSettings>
    <add key="wxappid" value="123"/>
    <add key="wxappsecret" value="123"/>
  </appSettings>
</configuration>

2、代碼方式:

ApiAccessTokenManager.Instance.SetAppIdentity("123", "123");

要注意下,GetCurrentToken()使用前,您必須配置好您的Appid和AppSecret。

ApiAccessTokenManager還提供了過期管理,一般Token的有效時間為7200秒,ApiAccessTokenManager可以自動刷新Token。

創建自定義菜單

普通的訂閱號只要認證以后,就支持了自定義菜單,目前認證費為300元,接口詳細文檔請點擊查看

我們先看下實現后的效果:

微信快速開發框架(WXPP QuickFramework)V2.0版本上線--源碼已更新至github

接下來,我們看下實現代碼:

var request = new MenuCreateRequest
            {
                AccessToken = ApiAccessTokenManager.Instance.GetCurrentToken(),
                Buttons = new List<ClickButton>
                {
                    new ClickButton{
                        Name = "博客",
                        Url = "http://inday.cnblogs.com",
                        Type = ClickButtonType.view
                    },

                    new ClickButton{
                        Name = "文章",
                        SubButton = new List<ClickButton>{
                            new ClickButton{
                                Name = "推薦",
                                Url = "http://www.cnblogs.com",
                                Type = ClickButtonType.view
                            },
                            new ClickButton {
                                Name = "精華",
                                Url = "http://www.cnblogs.com/pick/",
                                Type = ClickButtonType.view
                            }
                        }
                    },

                    new ClickButton{
                        Name = "新聞",
                        Url="http://www.cnblogs.com/news/",
                        Type = ClickButtonType.view
                    },
                }
            };
            var response = m_client.Execute(request);
            if (response.IsError)
            {
                Console.WriteLine(response);
            }
            else
            {
                Assert.Equal(false, response.IsError);
                Assert.Equal("ok", response.ErrorMessage);
            }

簡單吧,你只要提供一個MenuCreateRequest的實例,通過IApiClient.Execute執行就可以了。

我在Api.Requests和Api.Responses中的命名規則是根據微信服務器路徑的規則。比如創建自定義菜單的url為:微信快速開發框架(WXPP QuickFramework)V2.0版本上線--源碼已更新至github

所以我的Request就是MenuCreateRequest,對應的Response就是MenuCreateResponse。

如果想看測試想過,請微信掃描一下我的測試公眾賬號:微信快速開發框架(WXPP QuickFramework)V2.0版本上線--源碼已更新至github

獲取所有關注用戶

接下來我們看下如何獲取所有關注用戶,此為高級接口,需要服務號+認證,詳情點擊查看文檔

var request = new UserGetRequest
            {
                AccessToken = ApiAccessTokenManager.Instance.GetCurrentToken(),
                NextOpenId = ""
            };
            var response = m_client.Execute(request);
            if (!response.IsError)
            {
                foreach (var user in response.Data.OpenIds)
                {
                    Console.WriteLine(user);
                }
            }

默認每次提取10000個關注用戶,我在Xunit測試下,測試結果如下:

微信快速開發框架(WXPP QuickFramework)V2.0版本上線--源碼已更新至github

OpenId為對于某一公眾賬號的唯一標示,我們可以指定NextOpenId指定提取此ID后10000個關注用戶,比如:

var request = new UserGetRequest
            {
                AccessToken = ApiAccessTokenManager.Instance.GetCurrentToken(),
                NextOpenId = "oI1_vjreLbQfGy79Thnsh5ziJZNo"
            };

結果:

微信快速開發框架(WXPP QuickFramework)V2.0版本上線--源碼已更新至github

Api接口對應文檔

篇幅有限,不可能一一介紹,大家可以參考微信開發文檔,使用申請測試賬號進行測試,快速開發框架對應的Api如下表所示。

功能

ApiRequest

ApiResponse

自定義菜單創建接口

MenuCreateRequest

MenuCreateResponse

自定義菜單查詢接口

MenuGetRequest

MenuGetResponse

自定義菜單刪除接口

MenuDeleteRequest

MenuDeleteResponse

創建分組

GroupsCreateRequest

GroupsCreateResponse

查詢所有分組

GroupsGetRequest

GroupsGetResponse

查詢用戶所在分組

GroupsGetIdRequest

GroupsGetIdResponse

修改分組名

GroupsUpdateRequest

GroupsUpdateResponse

移動用戶分組

GroupsMembersUpdateRequest

GroupsMembersUpdateResponse

獲取用戶基本信息

UserInfoRequest

UserInfoResponse

獲取關注者列表

UserGetRequest

UserGetResponse

創建二維碼Ticket

QrcodeCreateRequest

QrcodeCreateResponse

上傳圖文消息素材

MediaUploadNewsRequest

MediaUploadNewsResponse

根據分組進行群發

MessageMassSendAllRequest

MessageMassSendAllResponse

根據OpenId列表進行發送

MessageMassSendRequest

MessageMassSendResponse

刪除群發

MessageMassDeleteRequest

MessageMassDeleteResponse

寫在最后

經過一段時間的更新代碼,對于微信快速開發框架也算告一段落,后續可能會比較忙碌點,如果出現bug,請大家與我取得聯系,我會第一時間去更新代碼,過段時間也會提供到騰訊公眾論壇去,看看能否被推薦。

在項目中,我加入了測試項目,其中Really開頭的為真實測試,需要Appid和AppSecret,Mock開頭的為虛擬的,只測試了輸出和返回的驗證,可能不太嚴謹,但因為時間有限所以未做詳細的測試。

在ApiRequest類中,都有Validate()的方法,目前還未完善,只有簡單的對于AccessToken的驗證,后續會與微信公眾開發平臺標準進行更新。

目前源代碼完全公開在Github中,開源協議還未想好,等有空再說吧。

最近參加了某個公司的應聘,未成功,人家就看了簡歷就否了,沒辦法,人老珠黃,文憑才中專,經驗多有何用呢,呵呵!有好公司覺得在下還可以,可以與我私聊,不過本人有言在先,本人簡歷寫得很爛(懶得更新,那么多項目誰記得清楚呢),無文憑(如果中專也算的話。。。),英文不會說只會看(目前關鍵就是在學英文),不過本人除了會開發外,還會根據工作的性質,技術結合工作來,相信物有所值滴。還有要筆試基礎的就免了,實在沒腦子去背這么多,不是專業的面試狂,只是想改善家庭生活而已。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

吉水县| 云龙县| 中卫市| 剑阁县| 湟源县| 娄烦县| 抚顺县| 奈曼旗| 石家庄市| 都江堰市| 泰宁县| 斗六市| 利川市| 延庆县| 平潭县| 大竹县| 临夏县| 双辽市| 平昌县| 三原县| 肃北| 永和县| 米易县| 西吉县| 晋城| 开化县| 枞阳县| 龙岩市| 南京市| 仙居县| 离岛区| 蓝田县| 云南省| 汉川市| 陈巴尔虎旗| 嘉鱼县| 高邑县| 普安县| 桦川县| 建水县| 库伦旗|