package sms  
  
import (  
   "context"  
   "github.com/aws/aws-sdk-go-v2/aws"   "github.com/aws/aws-sdk-go-v2/config"   "github.com/aws/aws-sdk-go-v2/credentials"   "github.com/aws/aws-sdk-go-v2/service/sns")  
  
type AwsSnsClient struct {  
   sns *sns.Client  
}  
  
// NewAwsSnsClient 创建Sns客户端  
func NewAwsSnsClient(id, secret, region string) (*AwsSnsClient, error) {  
   cfg, err := config.LoadDefaultConfig(context.TODO(), config.WithCredentialsProvider(credentials.StaticCredentialsProvider{  
      Value: aws.Credentials{  
         AccessKeyID: id, SecretAccessKey: secret,  
      },  
   }), config.WithRegion(region))  
   if err != nil {  
      return nil, err  
   }  
  
   return &AwsSnsClient{sns: sns.NewFromConfig(cfg)}, nil  
}  
  
// Send 发送短信  
func (client *AwsSnsClient) Send(phone, msg string) error {  
   _, err := client.sns.Publish(context.TODO(), &sns.PublishInput{  
      Message:          aws.String(msg),  
      MessageStructure: aws.String("text"),  
      PhoneNumber:      aws.String(phone),  
   })  
   if err != nil {  
      return err  
   }  
   return nil  
}
  1. 先在 用户添加SNS权限
  2. Amazon SNS的左侧栏中找到SMS选项(只有特定的国家才会显示,国内账号不会显示)
  3. 进到SMS后可以添加号码到沙盒
  4. 已验证发送地为国内时不支持,发送地为新加坡支持,但发送地为新加坡时,目标地址为国内不行
  5. 发送支持的地区可以查询