▌關於做者git
蘇震巍,雲開發Linker計劃成員,《微信開發深度解析》做者、Senparc.Weixin 微信 SDK 做者、微軟最有價值專家(MVP)、盛派網絡創始人兼首席架構師、微軟 Ignite 技術大會講師、從事軟件及互聯網研發已有26年,發佈了中國第一個HTML5商業應用,主持了衆多大型項目的架構、開發和集成,對物聯網、大數據和人工智能相關技術有深刻的實踐和理解,已爲30餘家世界 500 強企業提供解決方案和技術支持。github
我一直在關注微信生態開發領域和雲開發,看到有很多開發者須要服務端 SDK,在服務端調用雲開發的數據庫和函數,便在我本身的 SDK 中加入了相關的能力,幫助更多的開發者開發出更好的應用算法
▌關於 SDK數據庫
Senparc.Weixin SDK 是目前使用率最高的微信 C#/.NET SDK,包括了微信公衆號、小程序、開放平臺、微信支付、企業微信、微信硬件平臺等幾乎全套接口。Senparc.Weixin SDK 也是目前 GitHub 綜合排名第一的中國 .NET 開源項目。項目同時兼容多版本的.NET Framework、.NET Standard 和 .NET Core,具有企業級系統集成的全部要素:支持容災降級和熱切換的分佈式緩存策略、日誌系統、AccessToken 全生命週期管理模塊、消息上下文模塊、消息隊列模塊、加解密算法模塊,以及全套同步/異步方法。json
▌使用教程-上手說明小程序
使用 Senparc.Weixin SDK 開發項目能夠參考現有的官方 Demo,其中包括了大部分經常使用的功能演示,且支持不一樣 .NET 版本 https://github.com/JeffreySu/WeiXinMPSDK/tree/master/Samples。segmentfault
如下以使用 .NET Core 開發的小程序爲例,開發一個能夠調用騰訊雲的雲函數接口的項目。緩存
1.初始化一個項目微信
使用 Visual Studio 或 Visual Studio Code 建立一個 ASP.NET Core 項目,並配置項目的基礎信息網絡
選擇具體的項目模板
看到這裏,就說明你完成了項目的初始化
2.安裝 SDK
鼠標點擊【WeChatCloudFunction.Web】項目右鍵,選擇【管理Nuget程序包...】
在 Nuget 管理窗口內,【瀏覽】標籤下,搜索:Senparc.Weixin.WxOpen
注意:如需開發公衆帳號,則搜索 Senparc.Weixin.MP,如下操做以小程序爲例,僅命名空間不一樣,對應功能的開發過程對於公衆號(MP)、企業微信(Work)是徹底一致的,能夠觸類旁通。
3.配置 Senparc.Weixin 框架
在使用 Senparc.Weixin SDK 之間,還有兩步基礎的配置工做。
除了使用如下手動配置的方式,也能夠參考現成的 Demo 直接複製對應代碼:https://url.cn/5vUHVMF。
3.1 配置 appsetting.json
在 appsetting.json 追加以下內容:
//CO2NET 設置 "SenparcSetting": { "IsDebug": true, "DefaultCacheNamespace": "DefaultCache", //分佈式緩存 "Cache_Redis_Configuration": "#{Cache_Redis_Configuration}#", //Redis配置 "Cache_Memcached_Configuration": "#{Cache_Memcached_Configuration}#", //Memcached配置 "SenparcUnionAgentKey": "#{SenparcUnionAgentKey}#" }, //Senparc.Weixin SDK 設置 "SenparcWeixinSetting": { //微信全局 "IsDebug": true, //小程序 "WxOpenAppId": "#{WxOpenAppId}#", "WxOpenAppSecret": "#{WxOpenAppSecret}#", "WxOpenToken": "#{WxOpenToken}#", "WxOpenEncodingAESKey": "#{WxOpenEncodingAESKey}#" }
其中, WxOpenAppId 和 WxOpenAppSecret 的字符串值(包括#{}#佔位符)替換爲小程序後臺的值,如,將"#{WxOpenAppId}#" 替換爲:"wx12b4f63276b14d4c"。
WxOpenToken 和 WxOpenEncodingAESKey 對應於對話消息管理的 Token 和 EncodingAESKey 參數,若是僅開發高級接口,能夠忽略。
3.2 配置 startup.cs
在 ConfigureServices() 方法中追加代碼(可使用自動提示 using 命名空間):
services.AddSenparcWeixinServices(Configuration); //Senparc.Weixin 註冊
完整方法代碼
在 Configure() 方法中添加兩個參數,自動引入 appsettings.json 中的配置:IOptionssenparcSetting, IOptionssenparcWeixinSetting,完整代碼:
在方法體末尾追加代碼:
app.UseSenparcGlobal(env, senparcSetting.Value, null, true) .UseSenparcWeixin(senparcWeixinSetting.Value, weixinRegister => { weixinRegister.RegisterWxOpenAccount(senparcWeixinSetting.Value, "【雲函數】小程序"); });
其中第一行代碼是配置啓用 CO2NET(Senparc.Weixin 的一個基礎庫)全局配置,第二行代碼開始配置 Senparc.Weixin SDK 及小程序參數。
完整代碼:
在 startup.cs 中添加以上3段代碼,就能夠開始使用全部微信的高級接口了。
4.調用小程序雲開發的雲函數
高級接口能夠在任意地方出發,這裏爲了方便演示,咱們將其放置在首頁中。
打開 Controllers/HomeController.cs,建立一個新的 Action 方法 Api(),添加以下代碼,便可調用雲函數相關的接口:
var wxOpenSetting = Senparc.Weixin.Config.SenparcWeixinSetting.WxOpenSetting; var envId= "senparc-robot-5f5128"; var result = Senparc.Weixin.WxOpen.AdvancedAPIs.Tcb .TcbApi.DatabaseCollectionGet(wxOpenSetting.WxOpenAppId, envId); return Content(result.ToJson(true));
其中,wxOpenSetting 是經過 startup.cs 中代碼自動進行了全局配置的全套小程序配置參數,evnId 是雲函數的環境ID,能夠經過如下方式獲取到:
打開小程序開發工具,點擊【雲開發】按鈕
在新窗口中點擊【設置】按鈕
便可在右上角看到「環境ID(Environment ID)」。
完整代碼:
啓動項目後,便可看到默認的首頁:
訪問新建的頁面/Home/Api,便可看到成功得到到接口結果:
▌其餘
演示項目地址:https://github.com/Senparc/We...
▌關於 Linker 計劃
Linker計劃,是雲開發推出的,面向開源做者和開源團隊的開源協調合做計劃,旨在共建良好的雲開發開源生態,爲【雲開發者】提供更多便利好用的開源SDK、案例或適配軟件。
Linker計劃,鼓勵開源項目提供雲開發版本或內建雲開發支持,雲開發將助力合做開源項目成長。若是有興趣,能夠發送您的開源項目、但願和雲開發的合做方式等信息到 cloudbase@tencent.com
雲開發目前已有兩個不一樣語言的社區 SDK:Golang 和 C#, 除了這兩門語言,你還期待什麼語言 SDK 呢?
https://github.com/TencentCloudBase/Good-practice-tutorial-recommended
若是你想要了解更多關於雲開發CloudBase相關的技術故事/技術實戰經驗,請掃碼關注【騰訊云云開發】公衆號~