Documentation ¶
Index ¶
- Constants
- func PushToTemplate(templateID string, channels []string, substitutions map[string]string)
- func SendPush(templateID string, channels []string, substitutions map[string]string)
- type Actions
- type AndroidOverrideWithTemplate
- type AudienceSelector
- type Client
- type ClientOption
- type CreateAndSend
- type CreateAndSendSMSTarget
- type IOSOverrideWithTemplate
- type MergeData
- type NotificationObject
- type PushNotificationOption
- type PushObject
- type PushTemplatePayload
- type SMSOverrideWithTemplate
- type TemplateFields
- type TemplateRef
Constants ¶
const ( // BaseURL is the base of the API endpoints https://docs.airship.com/api/ua/#servers BaseURL = "https://go.urbanairship.com" // AcceptHeader is the value to send in the Accept header as required by docs. AcceptHeader = "application/vnd.urbanairship+json; version=3;" )
const ( // EndpointPushToTemplate is the path of the "/api/templates/push" POST endpoint. // https://docs.airship.com/api/ua/#operation-api-templates-push-post EndpointPushToTemplate = "/api/templates/push" // EndpointSendPush is the path of the "Send a Push" POST endpoint. // https://docs.airship.com/api/ua/#operation-api-push-post EndpointSendPush = "/api/push" // EndpointCreateAndSend is the path of the "Create and Send" POST endpoint. // https://docs.airship.com/api/ua/#operation-api-create-and-send-post EndpointCreateAndSend = "/api/create-and-send" )
const ( ActionTypeDeepLink = "deep_link" ActionTypeOpenURL = "url" )
Action types fro the Action.Type field
Variables ¶
This section is empty.
Functions ¶
func PushToTemplate ¶
PushToTemplate invokes the Airship "Push to Template" API https://docs.airship.com/api/ua/#operation-api-templates-push-post
Types ¶
type Actions ¶
type Actions struct { AddTag []string `json:"add_tag,omitempty"` RemoveTag []string `json:"remove_tag,omitempty"` Open *uaOpenAction `json:"open,omitempty"` }
Actions "Actions": Describes Actions to be performed by the SDK when a user interacts with the notification. https://docs.airship.com/api/ua/#schemas-actionsobject
type AndroidOverrideWithTemplate ¶
type AndroidOverrideWithTemplate struct { Template *TemplateRef `json:"template,omitempty"` Actions *Actions `json:"actions,omitempty"` Extra map[string]string `json:"extra,omitempty"` Sound string `json:"sound,omitempty"` CollapseKey string `json:"collapse_key,omitempty"` Category string `json:"category,omitempty"` Title string `json:"title,omitempty"` }
AndroidOverrideWithTemplate https://docs.airship.com/api/ua/#schemas-androidoverridewithtemplate
type AudienceSelector ¶
type AudienceSelector struct { Channels []string `json:"channel,omitempty"` NamedUsers []string `json:"named_user,omitempty"` }
AudienceSelector https://docs.airship.com/api/ua/#schemas-audienceselector Atomic Selector variant: https://docs.airship.com/api/ua/#schemas-atomicselector
type Client ¶
Client is the API for interacting with Urban Airship
func New ¶
func New(options ...ClientOption) Client
New creates a new client instance configured with the given options. For example:
conn := airship.New(WithBasicAuth("app-key", "master-secret"))
type ClientOption ¶
type ClientOption func(c *uaHTTPClient)
ClientOption are configuration functions that can be passed to New to configure the client.
func WithBasicAuth ¶
func WithBasicAuth(appKey, masterSecret string) ClientOption
WithBasicAuth configures the Airship Client to use HTTP Basic Auth https://docs.airship.com/api/ua/#security-basicauth
func WithBearerAuth ¶
func WithBearerAuth(token string) ClientOption
WithBearerAuth configures the Airship Client to use Bearer Auth https://docs.airship.com/api/ua/#security-bearerauth
func WithHTTPClient ¶
func WithHTTPClient(httpClient *http.Client) ClientOption
WithHTTPClient overrides the http.Client instance used by the Airship Client. This is useful for unit tests of the client itself, but not much else.
type CreateAndSend ¶
type CreateAndSend struct { Audience createAndSendAudience `json:"audience"` Notification NotificationObject `json:"notification"` DeviceTypes []string `json:"device_types"` }
CreateAndSend is a create-and-send request body for Urban Airship https://docs.airship.com/api/ua/#operation-api-create-and-send-post https://docs.airship.com/api/ua/#schemas-sms for the SMS varient
func MakeCreateAndSendSMSPayload ¶
func MakeCreateAndSendSMSPayload(templateID string, subs map[string]string, shortenLinks bool, targets []CreateAndSendSMSTarget) (*CreateAndSend, error)
MakeCreateAndSendSMSPayload creates a new create-and-send template payload to send an SMS message to the recipients using a message template already configured in Airship.
type CreateAndSendSMSTarget ¶
type CreateAndSendSMSTarget struct { MSISDN string `json:"ua_msisdn"` // The phone number of a mobile device. OptedIn time.Time `json:"ua_opted_in"` // The date/time when the user (msisdn) opted in to messages from the sender Sender string `json:"ua_sender"` // The long or short code your SMS messages are sent from. }
CreateAndSendSMSTarget defines an audience target for where to send an SMS message
type IOSOverrideWithTemplate ¶
type IOSOverrideWithTemplate struct { Template *TemplateRef `json:"template,omitempty"` Actions *Actions `json:"actions,omitempty"` Extra map[string]string `json:"extra,omitempty"` Sound string `json:"sound,omitempty"` Badge int32 `json:"badge,omitempty"` CollapseID string `json:"collapse_id,omitempty"` Category string `json:"category,omitempty"` Title string `json:"title,omitempty"` }
IOSOverrideWithTemplate https://docs.airship.com/api/ua/#schemas-iosoverridewithtemplate
type MergeData ¶
type MergeData struct { Substitutions map[string]string `json:"substitutions,omitempty"` TemplateID string `json:"template_id" validate:"required"` }
MergeData is the merge_data field of a Push Template Payload
type NotificationObject ¶
type NotificationObject struct { Alert string `json:"alert,omitempty"` Actions *Actions `json:"actions,omitempty"` Android *AndroidOverrideWithTemplate `json:"android,omitempty"` IOS *IOSOverrideWithTemplate `json:"ios,omitempty"` Sms *SMSOverrideWithTemplate `json:"sms,omitempty"` }
NotificationObject https://docs.airship.com/api/ua/#schemas-notificationobject
type PushNotificationOption ¶
type PushNotificationOption = func(notif *NotificationObject)
PushNotificationOption is a mutator-function based option for sending a push notification.
func WithDeepLinkAction ¶
func WithDeepLinkAction(deepURL, fallbackURL string) PushNotificationOption
WithDeepLinkAction adds an Open Deep Link action to the notification.
func WithExtra ¶
func WithExtra(extra map[string]string) PushNotificationOption
WithExtra adds "extra" data to IOS & Android notification overrides.
func WithOpenURLAction ¶
func WithOpenURLAction(url string) PushNotificationOption
WithOpenURLAction adds an Open URL action to the notification.
func WithShortenLinks ¶
func WithShortenLinks(value bool) PushNotificationOption
WithShortenLinks sets the ShortenLinks value on the SMS notification overrides.
type PushObject ¶
type PushObject struct { Audience AudienceSelector `json:"audience" validate:"required"` DeviceTypes interface{} `json:"device_types" validate:"required"` // "all" or slice of "ios", "android", etc GlobalAttributes map[string]string `json:"global_attributes,omitempty"` // will be added to the global attributes rendering namespace for this push. Notification NotificationObject `json:"notification"` // Probably yes required unless either message or in_app is present. }
PushObject https://docs.airship.com/api/ua/#schemas-pushobject
func MakeSendPushPayload ¶
func MakeSendPushPayload(templateID string, channels []string, substitutions map[string]string, options ...PushNotificationOption) PushObject
MakeSendPushPayload creates a new push template payload
type PushTemplatePayload ¶
type PushTemplatePayload struct { Audience AudienceSelector `json:"audience" validate:"required"` DeviceTypes []string `json:"device_types" validate:"required"` // "ios" and/or "android" MergeData MergeData `json:"merge_data" validate:"required"` }
PushTemplatePayload https://docs.airship.com/api/ua/#schemas-pushtemplatepayload
func MakePushTemplatePayload ¶
func MakePushTemplatePayload(templateID string, channels []string, substitutions map[string]string) PushTemplatePayload
MakePushTemplatePayload creates a new push template payload
type SMSOverrideWithTemplate ¶
type SMSOverrideWithTemplate struct { Template *TemplateRef `json:"template,omitempty"` ShortenLinks bool `json:"shorten_links,omitempty"` }
SMSOverrideWithTemplate specifies an SMS message template to send. https://docs.airship.com/api/ua/#schemas-smsoverridewithtemplate
type TemplateFields ¶
type TemplateFields struct { Alert string `json:"alert,omitempty"` Icon string `json:"icon,omitempty"` IconColor string `json:"icon_color,omitempty"` Summary string `json:"summary,omitempty"` Title string `json:"title,omitempty"` }
TemplateFields allows specifying the template directly in the API call. Items in the field object are personalizable with handlebars.
type TemplateRef ¶
type TemplateRef struct { TemplateID string `json:"template_id,omitempty" validate:"excluded_with=Fields"` Fields *TemplateFields `json:"fields,omitempty" validate:"excluded_with=TemplateID"` }
TemplateRef just holds a template ID under a key. One and only one of TemplateID and Fields may be populated