-
-
Save BizarroDavid/40f644de19a93039de5e67439de704b4 to your computer and use it in GitHub Desktop.
| //assumes you have the following environment variables setup for AWS session creation | |
| // AWS_SDK_LOAD_CONFIG=1 | |
| // AWS_ACCESS_KEY_ID=XXXXXXXXXX | |
| // AWS_SECRET_ACCESS_KEY=XXXXXXXX | |
| // AWS_REGION=us-west-2( or AWS_DEFAULT_REGION=us-east-1 if you are having trouble) | |
| package main | |
| import ( | |
| "fmt" | |
| "github.com/aws/aws-sdk-go/aws" | |
| "github.com/aws/aws-sdk-go/aws/session" | |
| "github.com/aws/aws-sdk-go/service/sns" | |
| ) | |
| func main() { | |
| fmt.Println("creating session") | |
| sess := session.Must(session.NewSession()) | |
| fmt.Println("session created") | |
| svc := sns.New(sess) | |
| fmt.Println("service created") | |
| params := &sns.PublishInput{ | |
| Message: aws.String("testing 123"), | |
| PhoneNumber: aws.String("+14445556666"), | |
| } | |
| resp, err := svc.Publish(params) | |
| if err != nil { | |
| // Print the error, cast err to awserr.Error to get the Code and | |
| // Message from an error. | |
| fmt.Println(err.Error()) | |
| return | |
| } | |
| // Pretty-print the response data. | |
| fmt.Println(resp) | |
| } |
Thanks for sharing.
I was not able to use the
AWS_DEFAULT_REGION. I had to useAWS_REGION=us-west-2.
Thanks mkinney. I updated the gist.
@BizarroDavid
This code was very helpful.
Did you know how to see where it came from?
If it is as it is, it will be displayed as NOTICE
@yuzujoe - You might need to add "AWS.SNS.SMS.SenderID" in MessageAttributes
params := &sns.PublishInput{
Message: aws.String(<sms text>),
PhoneNumber: aws.String(<phone number>),
MessageAttributes: map[string]*sns.MessageAttributeValue{
"AWS.SNS.SMS.SenderID": &sns.MessageAttributeValue{StringValue: aws.String(<sender id>), DataType: aws.String("String")},
"AWS.SNS.SMS.SMSType": &sns.MessageAttributeValue{StringValue: aws.String("Transactional"), DataType: aws.String("String")},
},
}
Hi, thanks for sharing this code, help me to get my own solution:
here is the aws-v2 code:
package main
import (
"context"
"fmt"
"github.com/aws/aws-sdk-go-v2/aws"
"github.com/aws/aws-sdk-go-v2/config"
"github.com/aws/aws-sdk-go-v2/service/sns"
)
func main() {
config, err := config.LoadDefaultConfig(context.TODO()) //Get local credentias ~/.aws/credentials
if err != nil {
panic("configuration error, " + err.Error())
}
client := sns.NewFromConfig(config)
params := &sns.PublishInput{
Message: aws.String("Testing..."),
PhoneNumber: aws.String("+{yournumber}"),
}
resp, err := client.Publish(context.TODO(), params)
if err != nil {
// Print the error, cast err to awserr.Error to get the Code and
// Message from an error.
fmt.Println(err.Error())
return
}
// Pretty-print the response data.
fmt.Println(resp)
}@yuzujoe - You might need to add "AWS.SNS.SMS.SenderID" in MessageAttributes
params := &sns.PublishInput{ Message: aws.String(<sms text>), PhoneNumber: aws.String(<phone number>), MessageAttributes: map[string]*sns.MessageAttributeValue{ "AWS.SNS.SMS.SenderID": &sns.MessageAttributeValue{StringValue: aws.String(<sender id>), DataType: aws.String("String")}, "AWS.SNS.SMS.SMSType": &sns.MessageAttributeValue{StringValue: aws.String("Transactional"), DataType: aws.String("String")}, }, }
hi i'm using above code but i'm getting like this
sion created
service created
ParameterValueInvalid: The SMS message type provided 'SMS' is not a valid message type
status code: 400, request id: f2a23e6a-0d95-5fc4-9fb7-674aa2057dd9
i am using above code but here sender id not working please help us
Thanks for sharing.
I was not able to use the
AWS_DEFAULT_REGION. I had to useAWS_REGION=us-west-2.