Documentation
¶
Overview ¶
Package sns provides helper functions for verifying and processing Amazon AWS SNS HTTP POST payloads.
Index ¶
Examples ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type ConfirmSubscriptionResponse ¶
type ConfirmSubscriptionResponse struct { XMLName xml.Name `xml:"ConfirmSubscriptionResponse"` SubscriptionArn string `xml:"ConfirmSubscriptionResult>SubscriptionArn"` RequestId string `xml:"ResponseMetadata>RequestId"` }
ConfirmSubscriptionResponse contains the XML response of accessing a SubscribeURL
type Payload ¶
type Payload struct { Message string `json:"Message"` MessageId string `json:"MessageId"` Signature string `json:"Signature"` SignatureVersion string `json:"SignatureVersion"` SigningCertURL string `json:"SigningCertURL"` SubscribeURL string `json:"SubscribeURL"` Subject string `json:"Subject"` Timestamp string `json:"Timestamp"` Token string `json:"Token"` TopicArn string `json:"TopicArn"` Type string `json:"Type"` UnsubscribeURL string `json:"UnsubscribeURL"` }
Payload contains a single POST from SNS
func (*Payload) BuildSignature ¶
BuildSignature returns a byte array containing a signature usable for SNS verification
func (*Payload) Subscribe ¶
func (payload *Payload) Subscribe() (ConfirmSubscriptionResponse, error)
Subscribe will use the SubscribeURL in a payload to confirm a subscription and return a ConfirmSubscriptionResponse
Example ¶
var notificationPayload sns.Payload err := json.Unmarshal([]byte(notificationJson), ¬ificationPayload) if err != nil { fmt.Print(err) } subscriptionResponse, err := notificationPayload.Subscribe() if err != nil { fmt.Println("Error when subscribing!", err) } fmt.Printf("subscriptionResponse %+v", subscriptionResponse)
Output:
func (*Payload) Unsubscribe ¶
func (payload *Payload) Unsubscribe() (UnsubscribeResponse, error)
Unsubscribe will use the UnsubscribeURL in a payload to confirm a subscription and return a UnsubscribeResponse
Example ¶
var notificationPayload sns.Payload err := json.Unmarshal([]byte(notificationJson), ¬ificationPayload) if err != nil { fmt.Print(err) } unsubscriptionResponse, err := notificationPayload.Unsubscribe() if err != nil { fmt.Println("Error when unsubscribing!", err) } fmt.Printf("unsubscriptionResponse %+v", unsubscriptionResponse)
Output:
func (*Payload) VerifyPayload ¶
VerifyPayload will verify that a payload came from SNS
Example ¶
var notificationPayload sns.Payload err := json.Unmarshal([]byte(notificationJson), ¬ificationPayload) if err != nil { fmt.Print(err) } verifyErr := notificationPayload.VerifyPayload() if verifyErr != nil { fmt.Print(verifyErr) } else { fmt.Print("Payload is valid!") }
Output:
type UnsubscribeResponse ¶
type UnsubscribeResponse struct { XMLName xml.Name `xml:"UnsubscribeResponse"` RequestId string `xml:"ResponseMetadata>RequestId"` }
UnsubscribeResponse contains the XML response of accessing an UnsubscribeURL