如何在 C# 平台调用云开发?
▌關(guān)于作者
蘇震巍,云開發(fā)Linker計(jì)劃成員,《微信開發(fā)深度解析》作者、Senparc.Weixin 微信 SDK 作者、微軟最有價(jià)值專家(MVP)、盛派網(wǎng)絡(luò)創(chuàng)始人兼首席架構(gòu)師、微軟 Ignite 技術(shù)大會(huì)講師、從事軟件及互聯(lián)網(wǎng)研發(fā)已有26年,發(fā)布了中國(guó)第一個(gè)HTML5商業(yè)應(yīng)用,主持了眾多大型項(xiàng)目的架構(gòu)、開發(fā)和集成,對(duì)物聯(lián)網(wǎng)、大數(shù)據(jù)和人工智能相關(guān)技術(shù)有深入的實(shí)踐和理解,已為30余家世界 500 強(qiáng)企業(yè)提供解決方案和技術(shù)支持。
我一直在關(guān)注微信生態(tài)開發(fā)領(lǐng)域和云開發(fā),看到有不少開發(fā)者需要服務(wù)端 SDK,在服務(wù)端調(diào)用云開發(fā)的數(shù)據(jù)庫(kù)和函數(shù),便在我自己的 SDK 中加入了相關(guān)的能力,幫助更多的開發(fā)者開發(fā)出更好的應(yīng)用
▌關(guān)于 SDK
Senparc.Weixin SDK 是目前使用率最高的微信 C#/.NET SDK,包括了微信公眾號(hào)、小程序、開放平臺(tái)、微信支付、企業(yè)微信、微信硬件平臺(tái)等幾乎全套接口。Senparc.Weixin SDK 也是目前 GitHub 綜合排名第一的中國(guó) .NET 開源項(xiàng)目。項(xiàng)目同時(shí)兼容多版本的.NET Framework、.NET Standard 和 .NET Core,具備企業(yè)級(jí)系統(tǒng)集成的所有要素:支持容災(zāi)降級(jí)和熱切換的分布式緩存策略、日志系統(tǒng)、AccessToken 全生命周期管理模塊、消息上下文模塊、消息隊(duì)列模塊、加解密算法模塊,以及全套同步/異步方法。
▌使用教程-上手說明
使用 Senparc.Weixin SDK 開發(fā)項(xiàng)目可以參考現(xiàn)有的官方 Demo,其中包括了大部分常用的功能演示,且支持不同 .NET 版本 https://github.com/JeffreySu/WeiXinMPSDK/tree/master/Samples。
以下以使用 .NET Core 開發(fā)的小程序?yàn)槔?#xff0c;開發(fā)一個(gè)可以調(diào)用騰訊云的云函數(shù)接口的項(xiàng)目。
1.初始化一個(gè)項(xiàng)目
使用 Visual Studio 或 Visual Studio Code 創(chuàng)建一個(gè) ASP.NET Core 項(xiàng)目,并配置項(xiàng)目的基礎(chǔ)信息
選擇具體的項(xiàng)目模板
看到這里,就說明你完成了項(xiàng)目的初始化
2.安裝 SDK
鼠標(biāo)點(diǎn)擊【W(wǎng)eChatCloudFunction.Web】項(xiàng)目右鍵,選擇【管理Nuget程序包...】
在 Nuget 管理窗口內(nèi),【瀏覽】標(biāo)簽下,搜索:Senparc.Weixin.WxOpen
注意:如需開發(fā)公眾賬號(hào),則搜索 Senparc.Weixin.MP,以下操作以小程序?yàn)槔?#xff0c;僅命名空間不同,對(duì)應(yīng)功能的開發(fā)過程對(duì)于公眾號(hào)(MP)、企業(yè)微信(Work)是完全一致的,可以舉一反三。
3.配置 Senparc.Weixin 框架
在使用 Senparc.Weixin SDK 之間,還有兩步基礎(chǔ)的配置工作。
除了使用以下手動(dòng)配置的方式,也可以參考現(xiàn)成的 Demo 直接復(fù)制對(duì)應(yīng)代碼:https://url.cn/5vUHVMF。
3.1 配置 appsetting.json
在 appsetting.json 追加如下內(nèi)容:
//CO2NET?設(shè)置"SenparcSetting":?{"IsDebug":?true,"DefaultCacheNamespace":?"DefaultCache",//分布式緩存"Cache_Redis_Configuration":?"#{Cache_Redis_Configuration}#",?//Redis配置"Cache_Memcached_Configuration":?"#{Cache_Memcached_Configuration}#",?//Memcached配置"SenparcUnionAgentKey":?"#{SenparcUnionAgentKey}#"},//Senparc.Weixin?SDK?設(shè)置"SenparcWeixinSetting":?{//微信全局"IsDebug":?true,//小程序"WxOpenAppId":?"#{WxOpenAppId}#","WxOpenAppSecret":?"#{WxOpenAppSecret}#","WxOpenToken":?"#{WxOpenToken}#","WxOpenEncodingAESKey":?"#{WxOpenEncodingAESKey}#"}其中, WxOpenAppId 和 WxOpenAppSecret 的字符串值(包括#{}#占位符)替換為小程序后臺(tái)的值,如,將"#{WxOpenAppId}#" 替換為:"wx12b4f63276b14d4c"。
WxOpenToken 和 WxOpenEncodingAESKey 對(duì)應(yīng)于對(duì)話消息管理的 Token 和 EncodingAESKey 參數(shù),如果僅開發(fā)高級(jí)接口,可以忽略。
3.2 配置 startup.cs
在 ConfigureServices() 方法中追加代碼(可以使用自動(dòng)提示 using 命名空間):
services.AddSenparcWeixinServices(Configuration); //Senparc.Weixin?注冊(cè)完整方法代碼
在 Configure() 方法中添加兩個(gè)參數(shù),自動(dòng)引入 appsettings.json 中的配置:IOptionssenparcSetting, IOptionssenparcWeixinSetting,完整代碼:
在方法體末尾追加代碼:
app.UseSenparcGlobal(env,?senparcSetting.Value,?null,?true) .UseSenparcWeixin(senparcWeixinSetting.Value, weixinRegister?=> {weixinRegister.RegisterWxOpenAccount(senparcWeixinSetting.Value, "【云函數(shù)】小程序"); });其中第一行代碼是配置啟用 CO2NET(Senparc.Weixin 的一個(gè)基礎(chǔ)庫(kù))全局配置,第二行代碼開始配置 Senparc.Weixin SDK 及小程序參數(shù)。
完整代碼:
在 startup.cs 中添加以上3段代碼,就可以開始使用所有微信的高級(jí)接口了。
4.調(diào)用小程序云開發(fā)的云函數(shù)
高級(jí)接口可以在任意地方出發(fā),這里為了方便演示,我們將其放置在首頁(yè)中。
打開 Controllers/HomeController.cs,創(chuàng)建一個(gè)新的 Action 方法 Api(),添加如下代碼,即可調(diào)用云函數(shù)相關(guān)的接口:
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 中代碼自動(dòng)進(jìn)行了全局配置的全套小程序配置參數(shù),evnId 是云函數(shù)的環(huán)境ID,可以通過以下方式獲取到:
打開小程序開發(fā)工具,點(diǎn)擊【云開發(fā)】按鈕
在新窗口中點(diǎn)擊【設(shè)置】按鈕
即可在右上角看到“環(huán)境ID(Environment ID)”。
完整代碼:
啟動(dòng)項(xiàng)目后,即可看到默認(rèn)的首頁(yè):
訪問新建的頁(yè)面/Home/Api,即可看到成功獲得到接口結(jié)果:
▌其他
演示項(xiàng)目地址:https://github.com/Senparc/WeChatCloudFunction/tree/master
▌關(guān)于 Linker 計(jì)劃
Linker計(jì)劃,是云開發(fā)推出的,面向開源作者和開源團(tuán)隊(duì)的開源協(xié)調(diào)合作計(jì)劃,旨在共建良好的云開發(fā)開源生態(tài),為【云開發(fā)者】提供更多便利好用的開源SDK、案例或適配軟件。
Linker計(jì)劃,鼓勵(lì)開源項(xiàng)目提供云開發(fā)版本或內(nèi)建云開發(fā)支持,云開發(fā)將助力合作開源項(xiàng)目成長(zhǎng)。如果有興趣,可以發(fā)送您的開源項(xiàng)目、希望和云開發(fā)的合作方式等信息到 cloudbase@tencent.com
云開發(fā)目前已有兩個(gè)不同語(yǔ)言的社區(qū) SDK:Golang 和 C#, 除了這兩門語(yǔ)言,你還期待什么語(yǔ)言 SDK 呢?
?
?更多精彩?
點(diǎn)擊下方圖片即可閱讀
? ? ? 點(diǎn)擊在看讓更多人發(fā)現(xiàn)精彩
總結(jié)
以上是生活随笔為你收集整理的如何在 C# 平台调用云开发?的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 关于C#异步编程你应该了解的几点建议
- 下一篇: C#反射与特性(一):反射基础