簡訊發送
# 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發送簡訊],對應的設備會接收到通過簡訊平臺發送的簡訊。
