簡訊發送
# Smart之阿里簡訊發送
# 1. 說明
範例通過對接阿里簡訊平臺,填寫對應的簡訊模板以進行簡訊發送的功能。在使用該範例前,需開通阿里云簡訊服務 (opens new window),獲取AccessKeyId、AccessKeySecret。並根據阿里云簡訊服務文件 (opens new window)進行簡訊模板的建立。
程式中的RFSmsSender需要配合TARS進行使用,在使用前需要對Smart進行帳套設定。
通過本實體的製作和學習,您可以掌握Smart智慧控制平臺通過客戶端以及TARS進行簡訊發送的功能。
# 2. 設計明細
開啟Smart智慧控制平臺,分別加入下插圖之控制元件。或者通過點選功能表欄[檔案]
-[打開專案]
選擇範例專案檔案來打開該範例。
①:TImage元件,控制元件名稱為Image1
。
②:TBitBtn元件,控制元件名稱為BitBtn1
。
③:TBitBtn元件,控制元件名稱為BitBtn2
。
④:TRFSmsSender元件,控制元件名稱為RFSmsSender1
。
⑤:TLabel元件,控制元件名稱為Label1
。
⑥:TLabel元件,控制元件名稱為Label2
。
⑦:TLabel元件,控制元件名稱為Label3
。
⑧:TLabel元件,控制元件名稱為Label4
。
⑨:TLabel元件,控制元件名稱為Label5
。
⑩:TLabel元件,控制元件名稱為Label6
。
(11):TLabel元件,控制元件名稱為Label7
。
(12):TLabel元件,控制元件名稱為Label8
。
(13):TEdit元件,控制元件名稱為Edit1
。
(14):TEdit元件,控制元件名稱為Edit2
。
(15):TEdit元件,控制元件名稱為Edit3
。
(16):TEdit元件,控制元件名稱為Edit4
。
(17):TEdit元件,控制元件名稱為Edit5
。
(18):TEdit元件,控制元件名稱為Edit6
。
(19):TComboBox元件,控制元件名稱為ComboBox1
。
Main窗體屬性設定
BorderStyle
:設定邊界樣式=bsDialog
。Caption
:設定窗體顯示的標題=阿里簡訊發送
。ClientHeight
:設定客戶區窗體的高度=332
。ClientWidth
:設定窗體客戶區的寬度=754
。
①Image1屬性設定
Align
:設定控制元件對齊方式=alClient
。Stretch
:設定圖片拉伸適應于控制元件。Picture
:設定圖片。點選Picture
屬性右側的[...]
按鈕,打開檔案上傳界面,點選[Load...]
從檔案瀏覽器中選擇對應的圖片檔案上傳,返回該界面下,待顯示出圖片後點擊[OK]
載入圖片。
②BitBtn1屬性設定
Caption
:設定按鈕顯示的文字內容=客戶端發送簡訊
。Height
:設定控制元件高度=74
。Width
:設定控制元件寬度=267
。Font
:設定字型,雙擊該屬性或者點選屬性右側的[...]
以打開字型設定界面。
③BitBtn2屬性設定
Caption
:設定按鈕顯示的文字內容=TARS發送簡訊
。Height
:設定控制元件高度=74
。Width
:設定控制元件寬度=267
。Font
:設定字型,雙擊該屬性或者點選屬性右側的[...]
以打開字型設定界面。
⑤Label1屬性設定
Caption
:設定標籤內容=簡訊配置參數
。Font
:設定字型,雙擊該屬性或者點選屬性右側的[...]
以打開字型設定界面。
⑥Label2屬性設定
Caption
:設定標籤內容=AccessKeyID
。Font
:設定字型,雙擊該屬性或者點選屬性右側的[...]
以打開字型設定界面。
⑦Label3屬性設定
Caption
:設定標籤內容=AccessKeySecret
。Font
:設定字型,雙擊該屬性或者點選屬性右側的[...]
以打開字型設定界面。
⑧Label4屬性設定
Caption
:設定標籤內容=簡訊模板ID
。Font
:設定字型,雙擊該屬性或者點選屬性右側的[...]
以打開字型設定界面。
⑨Label5屬性設定
Caption
:設定標籤內容=簡訊簽名
。Font
:設定字型,雙擊該屬性或者點選屬性右側的[...]
以打開字型設定界面。
⑩Label6屬性設定
Caption
:設定標籤內容=簡訊模板參數
。Font
:設定字型,雙擊該屬性或者點選屬性右側的[...]
以打開字型設定界面。
(11)Label7屬性設定
Caption
:設定標籤內容=接收手機號碼
。Font
:設定字型,雙擊該屬性或者點選屬性右側的[...]
以打開字型設定界面。
(12)Label8屬性設定
Caption
:設定標籤內容=API廠商
。Font
:設定字型,雙擊該屬性或者點選屬性右側的[...]
以打開字型設定界面。
(13)Edit1屬性設定
TextHint
:設定內容為空時的提示=阿里云獲取AccessKeyID
。Font
:設定字型,雙擊該屬性或者點選屬性右側的[...]
以打開字型設定界面。
(14)Edit2屬性設定
TextHint
:設定內容為空時的提示=阿里云獲取AccessKeySecret
。Font
:設定字型,雙擊該屬性或者點選屬性右側的[...]
以打開字型設定界面。
(15)Edit3屬性設定
Text
:設定編輯框中的內容,此處設定簡訊模板ID,例如SMS_171853089
。Font
:設定字型,雙擊該屬性或者點選屬性右側的[...]
以打開字型設定界面。
(16)Edit4屬性設定
Text
:設定編輯框中的內容,設定簽名,例如愛招飛
。Font
:設定字型,雙擊該屬性或者點選屬性右側的[...]
以打開字型設定界面。
(17)Edit5屬性設定
Text
:設定編輯框中的內容,設定短息模板參數,例如{"code":"123"}
。Font
:設定字型,雙擊該屬性或者點選屬性右側的[...]
以打開字型設定界面。
(18)Edit6屬性設定
TextHint
:設定內容為空時的提示=多個號碼用分號";"隔開
。Font
:設定字型,雙擊該屬性或者點選屬性右側的[...]
以打開字型設定界面。
(19)ComboBox1屬性設定
Items
:設定選項,雙擊該屬性或者點選該屬性右側的[...]
打開編輯器,輸入對應的選項。
Font
:設定字型,雙擊該屬性或者點選屬性右側的[...]
以打開字型設定界面。
ItemIndex
:設定選擇專案的數值為1
。
# 3. 程式設計
# 3.1. 程式初始化設定
在程式啟動時,配置控制元件連線到TARS。
constructor TMyHandler.Create(AOwner: TComponent);
begin
FThis :=TBaseForm(AOwner);
//必須進行簡訊元件的Connection繫結
FThis.RFSMSSender1.Connection := DM.DBConnection;
end;
2
3
4
5
6
# 3.2. 事件設定
- ②BitBtn1-OnClick事件
點選按鈕,在客戶端進行配置發送簡訊。
procedure TMyHandler.BitBtn1Click;
//客戶端發送簡訊
var
SendSmsRequest: TSendSmsRequest;
begin
if FThis.Edit6.Text = '' then
begin
Showmessage('請填寫接收簡訊的手機號碼。');
Exit;
end;
SendSmsRequest := TSendSmsRequest.Create;
try
SendSmsRequest.AccessKeyId := FThis.Edit1.Text;
SendSmsRequest.AccessKeySecret := FThis.Edit2.Text;
SendSmsRequest.TemplateCode := FThis.Edit3.Text;
SendSmsRequest.TemplateParam := FThis.Edit5.Text;
SendSmsRequest.SignName := FThis.Edit4.Text;
SendSmsRequest.PhoneNumbers := FThis.Edit6.Text;
SendSmsRequest.Provider := FThis.ComboBox1.ItemIndex;
if SendSmsRequest.Execute then
Showmessage('簡訊下發成功!')
else
Showmessage(SendSmsRequest.ResultMessage);
finally
FreeAndNil(SendSmsRequest);
end;
end;
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
- ③BitBtn2-OnClick事件
點選按鈕,控制元件連線至TARS服務端發起簡訊發送操作。
procedure TMyHandler.BitBtn2Click;
//TARS發送簡訊
begin
if FThis.Edit6.Text = '' then
begin
Showmessage('請填寫接收簡訊的手機號碼。');
Exit;
end;
//以下兩個參數如果為空,則使用服務端預設值
FThis.RFSMSSender1.AccessKeyId := FThis.Edit1.Text;
FThis.RFSMSSender1.AccessKeySecret := FThis.Edit2.Text;
FThis.RFSMSSender1.TemplateCode := FThis.Edit3.Text;
FThis.RFSMSSender1.TemplateParam := FThis.Edit5.Text;
FThis.RFSMSSender1.SignName := FThis.Edit4.Text;
FThis.RFSMSSender1.PhoneNumbers := FThis.Edit6.Text;
FThis.RFSMSSender1.Provider := TSmsApiProvider(FThis.ComboBox1.ItemIndex);
if FThis.RFSMSSender1.Execute then
Showmessage('簡訊下發成功!');
end;
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
# 4. 運行結果
通過工具欄儲存,將程式儲存為 sdb 專案檔案。
使用滑鼠點選工具欄運行(Run),測試運行結果。根據配置參數的提示依次輸入內容,點選左側的[客戶端發送簡訊]
或者[TARS發送簡訊]
,對應的設備會接收到通過簡訊平臺發送的簡訊。