建立 IAM User
使用 API 來發送前,需要先建立一個 IAM User,API 是透過它來做驗證並發送的。
進入 My Security Credentials,選擇 User --> Add User。
過程中的 Permissions 選 Attach existing policies directly,加上以下三個 Policy,第一個是允許該 User 可以完全存取 Amazon SNS Service,後兩個是可以完全存取發送的 Log 檔,用來查詢發送結果是否成功:
- AmazonSNSFullAccess
- CloudWatchEventsFullAccess
- CloudWatchLogsFullAccess
建立完成後,會拿到該 User 的 Access Key 和 Security Access Key,在 API 中會使用到。
使用 API 發送
Amazon Documents 中有 Java 的發送簡訊範例,依樣畫葫藘改成 .Net 版本如下,Coding 前要先 NuGet AWSSDK.SimpleNotificationService API:
using Amazon.SimpleNotificationService;
using Amazon.SimpleNotificationService.Model;
...
Dictionary<string, MessageAttributeValue> smsAttributes = new Dictionary<string, MessageAttributeValue>();
MessageAttributeValue senderID = new MessageAttributeValue();
MessageAttributeValue sMSType = new MessageAttributeValue();
MessageAttributeValue maxPrice = new MessageAttributeValue();
PublishRequest publishRequest = new PublishRequest();
AmazonSimpleNotificationServiceClient smsClient = new AmazonSimpleNotificationServiceClient("AccessKey", "SecretKey", Amazon.RegionEndpoint.APSoutheast2);
senderID.DataType = "String";
senderID.StringValue = "mySenderId"; // Taiwan not support
sMSType.DataType = "String";
sMSType.StringValue = "Promotional";
maxPrice.DataType = "Number";
maxPrice.StringValue = "0.1";
smsAttributes.Add("AWS.SNS.SMS.SenderID", senderID);
smsAttributes.Add("AWS.SNS.SMS.SMSType", sMSType);
smsAttributes.Add("AWS.SNS.SMS.MaxPrice", maxPrice);
publishRequest.Message = "Tim test send SMS from Amazon SNS Service.";
publishRequest.PhoneNumber = "+886912345678";
publishRequest.MessageAttributes = smsAttributes;
PublishResponse response = smsClient.Publish(publishRequest);
最後的 PublishResponse 會回傳 JSON,請記下裡面的 MessageID,在下一篇將用它來查詢 Log 用來判斷簡訊是否發送成功。
此範本中 AmazonSimpleNotificationServiceClient API 的 Region 我是指到 APSoutheast2 (Asia Pacific (Sydney)),所以在看 Bill 時,要將 Account 的 Region 切換到 Sydney 才能看到。



沒有留言:
張貼留言