您好,登錄后才能下訂單哦!
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,這個更不了解了。
如果您剛解除微信公眾平臺,可以參考【建立微信公眾平臺測試賬號】,目前微信公眾平臺賬號類型分為:訂閱號,服務號,賬號類型的不同,所支持的接口也不相同:
之前1.0版本僅僅支持訂閱號未認證的情況。1.0版本的使用可以參考:【體驗微信公眾平臺快速開發框架】和【利用快速開發框架,快速搭建微信瀏覽博客園首頁文章】
通過實現IMessageRole.MessageRole(MiddleMessage message)和IMessageHandler.HandlerRequestMessage(MiddleMessage message),自定義規則和返回數據。在此不再重復表述。
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方式:
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元,接口詳細文檔請點擊查看
我們先看下實現后的效果:
接下來,我們看下實現代碼:
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為:
所以我的Request就是MenuCreateRequest,對應的Response就是MenuCreateResponse。
如果想看測試想過,請微信掃描一下我的測試公眾賬號:
接下來我們看下如何獲取所有關注用戶,此為高級接口,需要服務號+認證,詳情點擊查看文檔
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測試下,測試結果如下:
OpenId為對于某一公眾賬號的唯一標示,我們可以指定NextOpenId指定提取此ID后10000個關注用戶,比如:
var request = new UserGetRequest { AccessToken = ApiAccessTokenManager.Instance.GetCurrentToken(), NextOpenId = "oI1_vjreLbQfGy79Thnsh5ziJZNo" };
結果:
篇幅有限,不可能一一介紹,大家可以參考微信開發文檔,使用申請測試賬號進行測試,快速開發框架對應的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中,開源協議還未想好,等有空再說吧。
最近參加了某個公司的應聘,未成功,人家就看了簡歷就否了,沒辦法,人老珠黃,文憑才中專,經驗多有何用呢,呵呵!有好公司覺得在下還可以,可以與我私聊,不過本人有言在先,本人簡歷寫得很爛(懶得更新,那么多項目誰記得清楚呢),無文憑(如果中專也算的話。。。),英文不會說只會看(目前關鍵就是在學英文),不過本人除了會開發外,還會根據工作的性質,技術結合工作來,相信物有所值滴。還有要筆試基礎的就免了,實在沒腦子去背這么多,不是專業的面試狂,只是想改善家庭生活而已。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。