Line Bots(二) - 使用C# Core API 加入 MessageAPI (使用 Push Message)
【C#】Line Bots使用方式會主要使用 C# 撰寫,如果是使用其他語言只僅供參考。繼上篇紀錄儲存相關資訊後,需要準備一個 ngrok 即可。
本章節範例 :
Github dotnetCore_LineBot
一、 創建 C# Web API 專案使用環境 Net6 WebAPI 來開發,dotnet 指令可以不用特別去設定 -f net6.0。第一步、Cmd 指令下達 dotnet new webapi指令,後續再安裝重要的Nuget。第二步、設定Cors就完成前置任務。
安裝 Nuget專案部分需要安裝部分,如下:
LineBotSDK
Newtonsoft.Json
Cors 設定 (Program.cs)Net6.0 因為只有Program 可以設定,只要是 Mvc 、Blazor 、驗證等透過他設定。這邊我們為了方便測試先加入一小段 Cors ,後續排除問題動作可以減少。
12345678910//add corsbuilder.Services.AddCors(options =>{ options.AddDefaultPolicy( ...
Line Bots(四) - Line Message設定
如果有完成上篇,回覆訊息會發現有自動回覆的功能。(P.S. 這邊主要是設定Line Message API )
Line Message API 自動回覆設定這邊我們需要切換到 Line Developers。Line Message API 需要關掉自動回覆訊息需要到 Basic Setting > Line Official Account Manager。
關閉自動回覆到下一個頁面後,位置位於回覆設定 > 進階設定只要把自動回覆訊息關閉即可。
創建自動回覆如果不創建 Message API 這個是可以代替方案,可以參考以下操作。因為操作簡單就不向下說明了。
圖文訊息圖文訊息是主要廣告、訊息方便使用者點選的動作之一,目前他規範圖片需要1040px*1040px 才能上傳圖片。
創建圖文訊息
建立新訊息 (群發訊息)群發訊息可以訊息、貼圖之外可貼張貼優惠卷、問卷調查、多頁訊息。設定完成後傳送訊息即可。
問卷調查問卷調查部分,有幾些地方可能會不太方便使用。問答限制 “單選”、”選擇”,Line 問答上只有這兩種功能,目前要使用Text 方面就要考慮改用 Google Fo ...
Line Bots(一) - 環境建立、註冊
【C#】Line Bots是台灣最多的使用之一的APP,如果要向外推廣必須要從 Line 下手是最好的選擇。本次計畫會撰寫Line Message 使用方式,大致上只有簡單如何創建 Message API。
Line DevelopersLine Developers 是 Line 提供的開發環境。詳細介紹 : LINE Bot 開發者指南詳解
註冊、創建環境創建方式需要透過 Line Developers : 請點選 這個來進行註冊。這邊使用個人帳號即可。接下來,需要創建 “Project” 專案,如下圖。
因為我們下一個主題式 Message API 所以請選擇它。
創建 Message API Channel創建部份Url 部分可以先不填入,後續有需要後面章節會在說明。
創建完畢後,現在有兩個重要資訊,務必要存起來。
Channel ID
Channel secret
Your user ID
Channel access token
Channel access token 位置在於 Message API 分頁最下方點選即可。
以上資訊存檔資後,記得把機器人加 ...
C# itextsharp 套件 - 創建PDF 神器
前言PDF 不論甚麼場合都需要使用,包含公司都會需要有PDF轉出轉入的工具,這邊使用PDF轉檔進行作業。
iTextSharp本函式庫原名是iText,主要是支援Java程式語言。之後針對Microsoft .NET C # 做了一個版本。
Github 範例 : 點擊我
一、 初始設定製作方式需要新增 Document 內部內容都會以Document 才新增、寫入。以下就是初始化設定。
123456789101112//設定PageSize//Margin: left, right, top, bottomDocument doc = new Document(PageSize.A4, 20, 20, 50, 50); //設定 StreamMemoryStream ms = new MemoryStream();PdfWriter.GetInstance(doc, ms).CloseStream = false;doc.Open();//內容doc.Close();
如果少掉 CloseStream 會遇到 cannot access a closed Stream問題,所以必 ...
C# resXManager (二) - 操作方式
前言上一章節已經說明完成使用方式,這次說明比較常用的幾的動作,分別為匯入、翻譯。
匯入使用前,不可能會一直使用這介面打資料在上面,這會大大影響執行效率,這時可以。使用方式先到介面上面點選 Export All 將所有資料匯出即可。
匯出範本匯出有兩種模式,一種是指定方式匯出、另一種是全部匯出。
加入項目並匯入在範本上面加入項目,目前加入項目為”匯入”。加入完畢後選擇 Import即可得到效果。
匯入沒效果需要確認兩個地方。
Project : 專案名稱。
File : Resource 位置,如果folder有數字記得要留意一下。
翻譯翻譯是resXManger 最大特色,使用上可能要自己評估這個字是否是你想要的文字。下方會使用四個項目進行轉換。
加入語言筆者使用日文來測試。
翻譯(轉換)文字介面下方有介面選擇Translate,Source 使用來之前加入文字,Targets 是加入要翻譯的語言,Targets 內容是可以多選翻譯,翻譯必須要注意覆蓋的危機。
接下來,翻譯完畢的項目可以進行選擇是否更新,如果都翻得不錯可以直接用力按下apply all 按鈕。
結果
C# resXManager (一) - 製作多國語言
前言開發時期,許多人會注意開發最後須要有環境去做切換語言的動作。使用多國語言處理方式有很多種,如果使用老派一點可以使用Excel方式讀取指定要讀取的文字,可以參考NPOI、LinqToExcel 兩種套件效果會相當不錯。
resXManagerresXManager 是資源文件編輯工具,使用方式相當簡單。內建有包含翻譯(不能太依賴)、Excel匯入出、創建語言時自動產生Resource檔案等,維護上可以套用同一個Resource開發上會相對快速。
首先第一步需要請各位先自行安裝ResXManager。
ResXManger : 請點選
Github : 請點選
創建專案此文章是使用 framework 4.7.2 ,目前筆者嘗試過一些版本可以參考Github資訊。創建完畢後在Properties 裡面新增 resources.resx 檔案,方便待會存放文字。
VB.NET目前嘗試WebForm 版本初始預設位置會是在 App_GlobalResources ,會與C#使用方式不太同。
加入Resource為了讓resources有資料,第一個動作可以先把指定的文字去選取、M ...
C# SignalR (1) - SignalR 使用方式
SignalRSignalRASP.NET Core是開放原始碼程式庫,可簡化將即時 Web 功能新增至應用程式。 即時 Web 功能可讓伺服器端程式碼立即將內容推送至用戶端。
SignalR 提供 API 來建立伺服器對用戶端 遠端程序呼叫, (RPC) 。 RPC 會從伺服器端 .NET Core 程式碼叫用用戶端上的函式。 有數個 支援的平臺,每個平臺都有各自的用戶端 SDK。 因此,RPC 呼叫所叫用的程式設計語言會有所不同。適合的候選項目 SignalR :
需要經常從伺服器取得更新的應用程式。 例如遊戲、社交網路、投票、拍賣、地圖和 GPS 應用程式。
儀表板和監視應用程式。 範例包括公司儀表板、即時銷售更新或旅行警示。
共同作業應用程式。 共同作業應用程式的範例包括白板應用程式和小組會議軟體。
需要通知的應用程式。 社交網路、電子郵件、交談、遊戲、旅行警示和其他使用通- 知的應用程式。
以下是 ASP.NET Core 的 SignalR 一些功能:
自動處理連線管理。
同時將訊息傳送給所有連線的用戶端。 例如,聊天室。
將訊息傳送給特定用戶端或用戶端群組。
調整以 ...
C# SignalR (2) - 留言板
Hub 類別屬性種類有以下三個。
Clients
All : 在所有連線的用戶端上呼叫方法
Caller : 在客戶端上呼叫一個呼叫了hub方法的方法
Others : 在所有連接的客戶端上呼叫方法,但呼叫該方法的客戶端除外
Context
Groups
上面列表中的每個屬性或方法的回傳值都提供呼叫SendAsync方法。SendAsync可以指定要呼叫用戶端的方法名稱,並傳入參數。
留言板html1234567891011121314151617181920212223242526272829<div class="container"> <div class="row"> </div> <div class="row"> <div class="col-2">User</div> <div class="col-4"&g ...
C# 使用 Microsoft Access 作為資料庫 (使用 .NET 6)
前言使用 Access 主要原因是為了做小型專案減少開發才會使用的一個DB 環境,廣泛性不大但是可以做簡單的系統,可以使用看看。
創建 AccessContext前期可以得之 EF 通常都是用在Ms SQL 、My SQL 等載入,若要達到建議版本可以參考下方做法。
取得連線字串驅動方式可以參考 : 【Microsoft】
123456public AccessContextcs(){ string connectionString = "Driver={Microsoft Access Driver (*.mdb, *.accdb)}; Dbq=D:\\Git\\Github\\00_Source\\ng-homestay\\WebApi\\lanyuanApi\\DbContext\\AccessUsers.accdb; "; Connection = new OdbcConnection(connectionString);}
製作相關Table1234567891011121314151617181920p ...
C# ASPNET Core 設定跨來源資源共用(CORS)
Cors 跨來源資源共用相信很多人使用API 時候可能會遇到這問題,例如 : localhost to ip串接不上之類問題,原則上是”跨來源資源共用”在搞鬼。
Cors 概念中,我們把網站當作(A) 、API為(B)來解釋,A需要透過B取得資訊,傳有一個資料相關內容稱為 “request”,B會確認A的來源是否一樣(same origin)就會讓他執行進去。從中得知(B)是決定(A)是否有權限取得資源。
使用 Core API這便我使用 vs 開啟 API,必須要注意有沒有選擇 OpenApi這功能會幫你開啟SwaggerUI相當方便。
這邊使用方式以後再來介紹,下方為產生完畢的function,我們就可以在下方指令區塊輸入 dotnet watch 完成開啟API localhost動作。
123456789101112[HttpGet]public IEnumerable<WeatherForecast> Get(){ var rng = new Random(); return Enumerable.Range(1, 5).Select(in ...