Documentation
¶
Index ¶
- type AccountAlertSeverityEnum
- type AccountAlertsValue
- type AccountReviewUpdateValue
- type AccountUpdateBanInfo
- type AccountUpdateEventEnum
- type AccountUpdateRestrictionInfo
- type AccountUpdateValue
- type AccountUpdateViolationInfo
- type AdInteractionSourceMediaTypeEnum
- type AdInteractionSourceTypeEnum
- type Applinks
- type BusinessCapabilityUpdateValue
- type CapabilityReview
- type Catalog
- type CatalogFetchResponseEdge
- type CatalogManager
- type CatalogManagerConfig
- type Change
- type ChannelEvent
- type Contact
- type Conversation
- type CreatePhoneNumberResponse
- type CreateProductCatalogOptions
- type DeleteQrCodeResponse
- type DeleteSuccessResponse
- type Entry
- type Error
- type EventManager
- func (em *EventManager) On(eventName events.EventType, handler func(events.BaseEvent)) events.EventType
- func (em *EventManager) Publish(event events.EventType, data events.BaseEvent) error
- func (em *EventManager) Subscribe(eventName events.EventType) (chan ChannelEvent, error)
- func (em *EventManager) Unsubscribe(id events.EventType)
- type GenerateQrCodeResponse
- type GetAllQrCodesResponse
- type HandleMessageSubscriptionEventPayload
- type ImageCdnUrl
- type InteractiveNotificationTypeEnum
- type KeyValue
- type MediaManager
- type MediaMetadata
- type Message
- type MessageManager
- type MessageSendError
- type MessageSendResponse
- type MessageStatusCategoryEnum
- type MessageStatusEnum
- type MessageTemplateCategory
- type MessageTemplateComponentFormat
- type MessageTemplateComponentType
- type MessageTemplateCreationResponse
- type MessageTemplateStatus
- type MessagesValue
- type Metadata
- type NamedParamExample
- type NotificationMessageTypeEnum
- type NotificationPayloadAudioMessageSchemaType
- type NotificationPayloadButtonInteractionMessageSchemaType
- type NotificationPayloadButtonMessageSchemaType
- type NotificationPayloadContactMessageSchemaType
- type NotificationPayloadDocumentMessageSchemaType
- type NotificationPayloadErrorSchemaType
- type NotificationPayloadImageMessageSchemaType
- type NotificationPayloadInteractionMessageSchemaType
- type NotificationPayloadListInteractionMessageSchemaType
- type NotificationPayloadLocationMessageSchemaType
- type NotificationPayloadMessageContextSchemaType
- type NotificationPayloadOrderMessageSchemaType
- type NotificationPayloadReactionMessageSchemaType
- type NotificationPayloadStickerMessageSchemaType
- type NotificationPayloadSystemMessageSchemaType
- type NotificationPayloadTextMessageSchemaType
- type NotificationPayloadVideoMessageSchemaType
- type NotificationReasonEnum
- type Origin
- type PhoneNumberManager
- func (manager *PhoneNumberManager) Create(phoneNumber, verifiedName, countryCode string) (CreatePhoneNumberResponse, error)
- func (manager *PhoneNumberManager) DeleteQrCode(phoneNumber, id string) (*DeleteQrCodeResponse, error)
- func (manager *PhoneNumberManager) Fetch(phoneNumberId string) (*WhatsappBusinessAccountPhoneNumber, error)
- func (manager *PhoneNumberManager) FetchAll(getSandBoxNumbers bool) (*WhatsappBusinessAccountPhoneNumberEdge, error)
- func (manager *PhoneNumberManager) GenerateQrCode(phoneNumber string, prefilledMessage string) (*GenerateQrCodeResponse, error)
- func (manager *PhoneNumberManager) GetAllQrCodes(phoneNumber string) (*GetAllQrCodesResponse, error)
- func (manager *PhoneNumberManager) GetQrCodeById(phoneNumber, id string) (*GetAllQrCodesResponse, error)
- func (manager *PhoneNumberManager) RequestVerificationCode(phoneNumberId string, codeMethod VerifyCodeMethod, languageCode string) (RequestVerificationCodeResponse, error)
- func (manager *PhoneNumberManager) UpdateQrCode(phoneNumber, id, prefilledMessage string) (*GenerateQrCodeResponse, error)
- func (manager *PhoneNumberManager) VerifyCode(phoneNumberId, verificationCode string) (VerifyCodeResponse, error)
- type PhoneNumberManagerConfig
- type PhoneNumberNameUpdateValue
- type PhoneNumberQualityUpdateCurrentLimitEnum
- type PhoneNumberQualityUpdateValue
- type Pricing
- type ProductError
- type ProductFeed
- type ProductGroup
- type ProductItem
- type ProductSet
- type ProductSetMetadata
- type Profile
- type RequestVerificationCodeResponse
- type SecurityValue
- type Status
- type SystemNotificationTypeEnum
- type TemplateCategoryUpdateValue
- type TemplateManager
- func (manager *TemplateManager) Create(body WhatsappMessageTemplateCreateRequestBody) (*MessageTemplateCreationResponse, error)
- func (tm *TemplateManager) Delete(id string)
- func (manager *TemplateManager) Fetch(Id string) (*WhatsAppBusinessMessageTemplateNode, error)
- func (manager *TemplateManager) FetchAll() (*WhatsAppBusinessTemplatesFetchResponseEdge, error)
- func (manager *TemplateManager) MigrateFromOtherBusinessAccount(sourcePageNumber int, sourceWabaId int) (*TemplateMigrationResponse, error)
- func (manager *TemplateManager) Update(templateId string, ...) (*MessageTemplateCreationResponse, error)
- type TemplateManagerConfig
- type TemplateMessageButtonType
- type TemplateMessageComponentButton
- type TemplateMessageComponentCard
- type TemplateMessageComponentExample
- type TemplateMessageLimitedTimeOfferParameter
- type TemplateMessagePreviewEdge
- type TemplateMessagePreviewNode
- type TemplateMessageQualityScore
- type TemplateMessageRejectionReasonEnum
- type TemplateMessageStatusUpdateDisableInfo
- type TemplateMessageStatusUpdateEventEnum
- type TemplateMessageStatusUpdateOtherInfo
- type TemplateMigrationResponse
- type TemplateQualityUpdateValue
- type TemplateStatusUpdateValue
- type VerifyCodeMethod
- type VerifyCodeResponse
- type WebApplink
- type WebhookFieldEnum
- type WebhookManager
- type WebhookManagerConfig
- type WhatsAppBusinessAccountMessageTemplateDeleteRequestBody
- type WhatsAppBusinessAccountMessageTemplatePreviewButton
- type WhatsAppBusinessAccountMessageTemplateUpdateRequestBody
- type WhatsAppBusinessHSMWhatsAppHSMComponent
- type WhatsAppBusinessMessageTemplateNode
- type WhatsAppBusinessTemplatesFetchResponseEdge
- type WhatsappApiNotificationPayloadSchemaType
- type WhatsappBusinessAccountPhoneNumber
- type WhatsappBusinessAccountPhoneNumberEdge
- type WhatsappMessageTemplateButtonCreateRequestBody
- type WhatsappMessageTemplateButtonCreateRequestBodyAlias
- type WhatsappMessageTemplateComponentCreateOrUpdateRequestBody
- type WhatsappMessageTemplateCreateRequestBody
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type AccountAlertSeverityEnum ¶
type AccountAlertSeverityEnum string
const ( AccountAlertSeverityEnumCritical AccountAlertSeverityEnum = "CRITICAL" AccountAlertSeverityEnumWarning AccountAlertSeverityEnum = "WARNING" )
type AccountAlertsValue ¶
type AccountAlertsValue struct {
EntityType string `json:"entity_type"`
EntityId string `json:"entity_id"`
AlertSeverity AccountAlertSeverityEnum `json:"alert_severity"`
AlertStatus string `json:"alert_status"`
AlertType string `json:"alert_type"`
AlertDescription string `json:"alert_description"`
}
type AccountReviewUpdateValue ¶
type AccountReviewUpdateValue struct {
Decision string `json:"decision"`
}
type AccountUpdateBanInfo ¶
type AccountUpdateEventEnum ¶
type AccountUpdateEventEnum string
const ( AccountUpdateEventEnumVerifiedAccount AccountUpdateEventEnum = "VERIFIED_ACCOUNT" AccountUpdateEventEnumDisabledAccount AccountUpdateEventEnum = "DISABLED_UPDATE" AccountUpdateEventEnumAccountViolation AccountUpdateEventEnum = "ACCOUNT_VIOLATION" AccountUpdateEventEnumAccountRestriction AccountUpdateEventEnum = "ACCOUNT_RESTRICTION" AccountUpdateEventEnumAccountDeleted AccountUpdateEventEnum = "ACCOUNT_DELETED" AccountUpdateEventEnumPartnerRemoved AccountUpdateEventEnum = "PARTNER_REMOVED" )
type AccountUpdateValue ¶
type AccountUpdateValue struct {
PhoneNumber string `json:"phone_number,omitempty"`
Event AccountUpdateEventEnum `json:"event"`
}
type AccountUpdateViolationInfo ¶
type AccountUpdateViolationInfo struct {
ViolationType string `json:"violation_type"`
}
type AdInteractionSourceMediaTypeEnum ¶
type AdInteractionSourceMediaTypeEnum string
const ( AdInteractionSourceMediaTypeImage AdInteractionSourceMediaTypeEnum = "image" AdInteractionSourceMediaTypeVideo AdInteractionSourceMediaTypeEnum = "video" )
type AdInteractionSourceTypeEnum ¶
type AdInteractionSourceTypeEnum string
const (
AdInteractionSourceTypeUnknown AdInteractionSourceTypeEnum = "unknown"
)
type Applinks ¶ added in v0.2.0
type Applinks struct {
Web WebApplink `json:"web"`
}
type CapabilityReview ¶ added in v0.2.0
type Catalog ¶ added in v0.2.0
type Catalog struct {
// Basic fields
Id string `json:"id"`
Name string `json:"name"`
ProductCount int `json:"product_count"`
Vertical string `json:"vertical,omitempty"`
// Edge relationships (represented as slices for brevity)
Agencies *[]interface{} `json:"agencies,omitempty"`
AssignedUsers *[]interface{} `json:"assigned_users,omitempty"`
AutomotiveModels *[]interface{} `json:"automotive_models,omitempty"`
Categories *[]interface{} `json:"categories,omitempty"`
CheckBatchRequestStatus *[]interface{} `json:"check_batch_request_status,omitempty"`
DataSources *interface{} `json:"data_sources,omitempty"`
Destinations *[]interface{} `json:"destinations,omitempty"`
Diagnostics *[]interface{} `json:"diagnostics,omitempty"`
EventStats *[]interface{} `json:"event_stats,omitempty"`
ExternalEventSources *[]interface{} `json:"external_event_sources,omitempty"`
Flights *[]interface{} `json:"flights,omitempty"`
HomeListings *[]interface{} `json:"home_listings,omitempty"`
HotelRoomsBatch *[]interface{} `json:"hotel_rooms_batch,omitempty"`
Hotels *[]interface{} `json:"hotels,omitempty"`
PricingVariablesBatch *[]interface{} `json:"pricing_variables_batch,omitempty"`
ProductGroups *interface{} `json:"product_groups,omitempty"`
ProductSets *interface{} `json:"product_sets,omitempty"`
ProductSetsBatch *[]interface{} `json:"product_sets_batch,omitempty"`
Products struct {
Data []ProductItem `json:"data"`
} `json:"products,omitempty"`
VehicleOffers *[]interface{} `json:"vehicle_offers,omitempty"`
Vehicles *[]interface{} `json:"vehicles,omitempty"`
}
Update Catalog to use []ProductItem for Products.
type CatalogFetchResponseEdge ¶ added in v0.2.0
type CatalogFetchResponseEdge struct {
Data []Catalog `json:"data"`
Paging internal.WhatsAppBusinessApiPaginationMeta `json:"paging"`
}
type CatalogManager ¶ added in v0.2.0
type CatalogManager struct {
// contains filtered or unexported fields
}
func NewCatalogManager ¶ added in v0.2.0
func NewCatalogManager(config *CatalogManagerConfig) *CatalogManager
func (*CatalogManager) CreateNewProductCatalog ¶ added in v0.2.0
func (cm *CatalogManager) CreateNewProductCatalog() (CreateProductCatalogOptions, error)
func (*CatalogManager) GetAllCatalogs ¶ added in v0.2.0
func (cm *CatalogManager) GetAllCatalogs() (*CatalogFetchResponseEdge, error)
func (*CatalogManager) GetCatalogProducts ¶ added in v0.2.0
func (cm *CatalogManager) GetCatalogProducts(catalogId string) ([]ProductItem, error)
GetCatalogProducts retrieves the list of products for a given catalog.
type CatalogManagerConfig ¶ added in v0.2.0
type CatalogManagerConfig struct {
BusinessAccountId string
Requester *request_client.RequestClient
}
type Change ¶
type Change struct {
Value interface{} `json:"value"`
Field WebhookFieldEnum `json:"field"`
}
type ChannelEvent ¶
type ChannelEvent struct {
Type events.EventType // Type is the type of the event.
Data events.BaseEvent // Data is the data associated with the event.
}
ChannelEvent represents an event that can be published and subscribed to.
type Conversation ¶
type CreatePhoneNumberResponse ¶
type CreatePhoneNumberResponse struct {
Id string `json:"id,omitempty"`
}
type CreateProductCatalogOptions ¶ added in v0.2.0
type CreateProductCatalogOptions struct {
Success string `json:"success,omitempty"`
}
type DeleteQrCodeResponse ¶
type DeleteQrCodeResponse struct {
Success bool `json:"success,omitempty"`
}
DeleteQrCodeResponse represents the response of deleting a QR code.
type DeleteSuccessResponse ¶ added in v0.1.0
type DeleteSuccessResponse struct {
Success bool `json:"success"`
}
type EventManager ¶
type EventManager struct {
sync.RWMutex // RWMutex is used to synchronize access to the subscribers map.
// contains filtered or unexported fields
}
EventManager is responsible for managing events and their subscribers.
func NewEventManager ¶
func NewEventManager() *EventManager
NewEventManager creates a new instance of EventManger.
func (*EventManager) On ¶
func (em *EventManager) On(eventName events.EventType, handler func(events.BaseEvent)) events.EventType
On registers a handler function for the specified event type. The handler function will be called whenever the event is published. It returns the event type that the handler is registered for.
func (*EventManager) Publish ¶
Publish publishes an event to the event system and notifies all the subscribers.
func (*EventManager) Subscribe ¶
func (em *EventManager) Subscribe(eventName events.EventType) (chan ChannelEvent, error)
Subscribe adds a new subscriber to the specified event type. The subscriber will be notified when the event is published.
func (*EventManager) Unsubscribe ¶
func (em *EventManager) Unsubscribe(id events.EventType)
Unsubscribe removes a subscriber from the specified event type.
type GenerateQrCodeResponse ¶
type GenerateQrCodeResponse struct {
Code string `json:"code,omitempty"`
PrefilledMessage string `json:"prefilled_message,omitempty"`
DeepLinkUrl string `json:"deep_link_url,omitempty"`
QrImageUrl string `json:"qr_image_url,omitempty"`
}
GenerateQrCodeResponse represents the response of generating a QR code.
type GetAllQrCodesResponse ¶
type GetAllQrCodesResponse struct {
Data []GenerateQrCodeResponse `json:"data,omitempty"`
}
GetAllQrCodesResponse represents the response of getting all QR codes for a phone number.
type HandleMessageSubscriptionEventPayload ¶
type HandleMessageSubscriptionEventPayload struct {
Messages []Message `json:"messages"`
Statuses []Status `json:"statuses"`
PhoneNumber events.BusinessPhoneNumber `json:"phone_number_id"` // * this is the phone number to which this event has bee sent to
BusinessAccountId string `json:"business_account_id"` // * business account id to which this event has been sent to
SenderName string `json:"sender_name"`
}
type ImageCdnUrl ¶ added in v0.2.0
type InteractiveNotificationTypeEnum ¶
type InteractiveNotificationTypeEnum string
const ( NotificationTypeButtonReply InteractiveNotificationTypeEnum = "button_reply" NotificationTypeListReply InteractiveNotificationTypeEnum = "list_reply" )
type MediaManager ¶
type MediaManager struct {
// contains filtered or unexported fields
}
MediaManager is responsible for managing media related operations.
func NewMediaManager ¶
func NewMediaManager(requester request_client.RequestClient) *MediaManager
NewMediaManager creates a new instance of MediaManager.
func (*MediaManager) DeleteMedia ¶
func (mm *MediaManager) DeleteMedia(id string) (string, error)
func (*MediaManager) GetMediaUrlById ¶
func (mm *MediaManager) GetMediaUrlById(id string) (string, error)
func (*MediaManager) UploadMedia ¶ added in v0.1.0
func (mm *MediaManager) UploadMedia(phoneNumberId string, file io.Reader, filename, mimeType string) (string, error)
UploadMedia uploads a media file to WhatsApp's Cloud API.
type MediaMetadata ¶ added in v0.1.0
type Message ¶
type Message struct {
Id string `json:"id"`
From string `json:"from"`
Timestamp string `json:"timestamp"`
Type NotificationMessageTypeEnum `json:"type"`
Context NotificationPayloadMessageContextSchemaType `json:"context"`
Errors []Error `json:",inline"`
NotificationPayloadTextMessageSchemaType `json:",inline"`
NotificationPayloadAudioMessageSchemaType `json:",inline"`
NotificationPayloadImageMessageSchemaType `json:",inline"`
NotificationPayloadButtonMessageSchemaType `json:",inline"`
NotificationPayloadDocumentMessageSchemaType `json:",inline"`
NotificationPayloadOrderMessageSchemaType `json:",inline"`
NotificationPayloadStickerMessageSchemaType `json:",inline"`
NotificationPayloadSystemMessageSchemaType `json:",inline"`
NotificationPayloadVideoMessageSchemaType `json:",inline"`
NotificationPayloadReactionMessageSchemaType `json:",inline"`
NotificationPayloadLocationMessageSchemaType `json:",inline"`
NotificationPayloadContactMessageSchemaType `json:",inline"`
NotificationPayloadInteractionMessageSchemaType `json:",inline"`
}
type MessageManager ¶
type MessageManager struct {
PhoneNumberId string
// contains filtered or unexported fields
}
MessageManager is responsible for managing messages.
func NewMessageManager ¶
func NewMessageManager(requester request_client.RequestClient, phoneNumberId string) *MessageManager
NewMessageManager creates a new instance of MessageManager.
func (*MessageManager) Reply ¶ added in v0.3.3
func (mm *MessageManager) Reply(message components.BaseMessage, phoneNumber string, replyTo string) (*MessageSendResponse, error)
Reply sends a reply message using the provided BaseMessage and returns a structured response. If the API response contains an error, it returns that error.
func (*MessageManager) Send ¶
func (mm *MessageManager) Send(message components.BaseMessage, phoneNumber string) (*MessageSendResponse, error)
Send sends a message using the provided BaseMessage and returns a structured response. If the API response contains an error, it returns that error.
type MessageSendError ¶
type MessageSendError struct {
Message string `json:"message"` // Error description.
Type string `json:"type"` // Error type (e.g., OAuthException).
Code int `json:"code"` // Error code.
ErrorData struct {
MessagingProduct string `json:"messaging_product"`
Details string `json:"details"`
} `json:"error_data"` // Additional error details.
ErrorSubcode int `json:"error_subcode"`
FbtraceID string `json:"fbtrace_id"`
}
MessageSendError represents the error object in an API response.
type MessageSendResponse ¶
type MessageSendResponse struct {
MessagingProduct string `json:"messaging_product"`
Contacts []struct {
Input string `json:"input"`
WaID string `json:"wa_id"`
} `json:"contacts"`
Messages []struct {
ID string `json:"id"`
} `json:"messages"`
Error *MessageSendError `json:"error,omitempty"`
}
MessageSendResponse represents the structured API response for sending a message.
type MessageStatusCategoryEnum ¶
type MessageStatusCategoryEnum string
const (
MessageStatusCategorySent MessageStatusCategoryEnum = "sent"
)
type MessageStatusEnum ¶
type MessageStatusEnum string
const ( MessageStatusDelivered MessageStatusEnum = "delivered" MessageStatusRead MessageStatusEnum = "read" MessageStatusUnDelivered MessageStatusEnum = "undelivered" MessageStatusFailed MessageStatusEnum = "failed" MessageStatusSent MessageStatusEnum = "sent" )
type MessageTemplateCategory ¶
type MessageTemplateCategory string
MessageTemplateCategory represents the category of a WhatsApp Business message template.
const ( MessageTemplateCategoryUtility MessageTemplateCategory = "UTILITY" MessageTemplateCategoryMarketing MessageTemplateCategory = "MARKETING" MessageTemplateCategoryAuthentication MessageTemplateCategory = "AUTHENTICATION" )
type MessageTemplateComponentFormat ¶
type MessageTemplateComponentFormat string
MessageTemplateComponentFormat represents the format of a template component.
const ( MessageTemplateComponentFormatText MessageTemplateComponentFormat = "TEXT" MessageTemplateComponentFormatImage MessageTemplateComponentFormat = "IMAGE" MessageTemplateComponentFormatDocument MessageTemplateComponentFormat = "DOCUMENT" MessageTemplateComponentFormatVideo MessageTemplateComponentFormat = "VIDEO" MessageTemplateComponentFormatLocation MessageTemplateComponentFormat = "LOCATION" )
type MessageTemplateComponentType ¶
type MessageTemplateComponentType string
MessageTemplateComponentType represents the type of a template component.
const ( MessageTemplateComponentTypeGreeting MessageTemplateComponentType = "GREETING" MessageTemplateComponentTypeHeader MessageTemplateComponentType = "HEADER" MessageTemplateComponentTypeBody MessageTemplateComponentType = "BODY" MessageTemplateComponentTypeButtons MessageTemplateComponentType = "BUTTONS" MessageTemplateComponentTypeCarousel MessageTemplateComponentType = "CAROUSEL" // this appears in case of product caraousel MessageTemplateComponentTypeLimitedTimeOffer MessageTemplateComponentType = "LIMITED_TIME_OFFER" )
type MessageTemplateCreationResponse ¶
type MessageTemplateCreationResponse struct {
Id string `json:"id,omitempty"`
Status MessageTemplateStatus `json:"status,omitempty"`
Category MessageTemplateCategory `json:"category,omitempty"`
}
MessageTemplateCreationResponse represents the response after creating a template.
type MessageTemplateStatus ¶
type MessageTemplateStatus string
MessageTemplateStatus represents the status of a WhatsApp Business message template.
const ( MessageTemplateStatusApproved MessageTemplateStatus = "APPROVED" MessageTemplateStatusRejected MessageTemplateStatus = "REJECTED" MessageTemplateStatusPending MessageTemplateStatus = "PENDING" )
type MessagesValue ¶
type NamedParamExample ¶ added in v0.1.1
type NamedParamExample struct {
ParamName string `json:"param_name"`
Example string `json:"example"`
}
NamedParamExample represents a single named parameter and its example value.
type NotificationMessageTypeEnum ¶
type NotificationMessageTypeEnum string
const ( NotificationMessageTypeText NotificationMessageTypeEnum = "text" NotificationMessageTypeAudio NotificationMessageTypeEnum = "audio" NotificationMessageTypeImage NotificationMessageTypeEnum = "image" NotificationMessageTypeButton NotificationMessageTypeEnum = "button" NotificationMessageTypeDocument NotificationMessageTypeEnum = "document" NotificationMessageTypeOrder NotificationMessageTypeEnum = "order" NotificationMessageTypeSticker NotificationMessageTypeEnum = "sticker" NotificationMessageTypeSystem NotificationMessageTypeEnum = "system" NotificationMessageTypeVideo NotificationMessageTypeEnum = "video" NotificationMessageTypeReaction NotificationMessageTypeEnum = "reaction" NotificationMessageTypeInteractive NotificationMessageTypeEnum = "interactive" NotificationMessageTypeUnknown NotificationMessageTypeEnum = "unknown" NotificationMessageTypeLocation NotificationMessageTypeEnum = "location" NotificationMessageTypeContacts NotificationMessageTypeEnum = "contacts" )
type NotificationPayloadContactMessageSchemaType ¶
type NotificationPayloadContactMessageSchemaType struct {
Contacts []Contact `json:"contacts"`
}
type NotificationPayloadInteractionMessageSchemaType ¶
type NotificationPayloadInteractionMessageSchemaType struct {
Interactive struct {
Type InteractiveNotificationTypeEnum `json:"type"`
NotificationPayloadButtonInteractionMessageSchemaType `json:",inline,omitempty"`
NotificationPayloadListInteractionMessageSchemaType `json:",inline,omitempty"`
} `json:"interactive,omitempty"`
}
type NotificationPayloadMessageContextSchemaType ¶
type NotificationPayloadMessageContextSchemaType struct {
Forwarded bool `json:"forwarded,omitempty"`
FrequentlyForwarded bool `json:"frequently_forwarded,omitempty"`
From string `json:"from,omitempty"`
Id string `json:"id"`
ReferredProduct struct {
CatalogId string `json:"catalog_id"`
ProductRetailerId string `json:"product_retailer_id"`
} `json:"referred_product,omitempty"`
}
type NotificationPayloadOrderMessageSchemaType ¶
type NotificationPayloadOrderMessageSchemaType struct {
// OrderText string `json:"text"`
Order struct {
CatalogId string `json:"catalog_id"`
ProductItems []struct {
ProductRetailerId string `json:"product_retailer_id"`
Quantity int `json:"quantity"`
ItemPrice float64 `json:"item_price"`
Currency string `json:"currency"`
} `json:"product_items"`
Text *string `json:"text,omitempty"`
} `json:"order,omitempty"`
}
type NotificationPayloadSystemMessageSchemaType ¶
type NotificationPayloadSystemMessageSchemaType struct {
System struct {
Identity string `json:"identity"`
Body string `json:"body"`
Customer string `json:"customer"`
Type SystemNotificationTypeEnum `json:"type"`
WaId string `json:"wa_id"`
} `json:"system,omitempty"`
Identity struct {
Acknowledged string `json:"acknowledged"`
CreatedTimestamp string `json:"created_timestamp"`
Hash string `json:"hash"`
} `json:"identity,omitempty"`
}
type NotificationPayloadTextMessageSchemaType ¶
type NotificationPayloadTextMessageSchemaType struct {
Text struct {
Body string `json:"body"`
} `json:"text,omitempty"`
Referral struct {
SourceUrl string `json:"source_url"`
SourceType AdInteractionSourceTypeEnum `json:"source_type"`
SourceId string `json:"source_id"`
Headline string `json:"headline"`
Body string `json:"body"`
ImageUrl string `json:"image_url,omitempty"`
VideoUrl string `json:"video_url,omitempty"`
ThumbnailUrl string `json:"thumbnail_url"`
CtwaCLId string `json:"ctwa_clid"`
MediaType AdInteractionSourceMediaTypeEnum `json:"media_type"`
} `json:"referral,omitempty"`
}
type NotificationReasonEnum ¶
type NotificationReasonEnum string
const (
NotificationReasonMessage NotificationReasonEnum = "message"
)
type Origin ¶
type Origin struct {
Type MessageStatusCategoryEnum `json:"type"`
ExpirationTimestamp string `json:"expiration_timestamp,omitempty"`
}
type PhoneNumberManager ¶
type PhoneNumberManager struct {
// contains filtered or unexported fields
}
PhoneNumberManager is responsible for managing phone numbers for WhatsApp Business API and phone number specific operations.
func NewPhoneNumberManager ¶
func NewPhoneNumberManager(config *PhoneNumberManagerConfig) *PhoneNumberManager
NewPhoneNumberManager creates a new instance of PhoneNumberManager.
func (*PhoneNumberManager) Create ¶
func (manager *PhoneNumberManager) Create(phoneNumber, verifiedName, countryCode string) (CreatePhoneNumberResponse, error)
func (*PhoneNumberManager) DeleteQrCode ¶
func (manager *PhoneNumberManager) DeleteQrCode(phoneNumber, id string) (*DeleteQrCodeResponse, error)
DeleteQrCode deletes a QR code by its ID for the specified phone number.
func (*PhoneNumberManager) Fetch ¶
func (manager *PhoneNumberManager) Fetch(phoneNumberId string) (*WhatsappBusinessAccountPhoneNumber, error)
Fetch fetches a phone number by its ID.
func (*PhoneNumberManager) FetchAll ¶
func (manager *PhoneNumberManager) FetchAll(getSandBoxNumbers bool) (*WhatsappBusinessAccountPhoneNumberEdge, error)
FetchAll fetches all phone numbers based on the provided filters.
func (*PhoneNumberManager) GenerateQrCode ¶
func (manager *PhoneNumberManager) GenerateQrCode(phoneNumber string, prefilledMessage string) (*GenerateQrCodeResponse, error)
GenerateQrCode generates a QR code for the specified phone number with the given prefilled message.
func (*PhoneNumberManager) GetAllQrCodes ¶
func (manager *PhoneNumberManager) GetAllQrCodes(phoneNumber string) (*GetAllQrCodesResponse, error)
GetAllQrCodes gets all QR codes for the specified phone number.
func (*PhoneNumberManager) GetQrCodeById ¶
func (manager *PhoneNumberManager) GetQrCodeById(phoneNumber, id string) (*GetAllQrCodesResponse, error)
GetQrCodeById gets a QR code by its ID for the specified phone number.
func (*PhoneNumberManager) RequestVerificationCode ¶
func (manager *PhoneNumberManager) RequestVerificationCode(phoneNumberId string, codeMethod VerifyCodeMethod, languageCode string) (RequestVerificationCodeResponse, error)
func (*PhoneNumberManager) UpdateQrCode ¶
func (manager *PhoneNumberManager) UpdateQrCode(phoneNumber, id, prefilledMessage string) (*GenerateQrCodeResponse, error)
UpdateQrCode updates a QR code by its ID for the specified phone number with the given prefilled message.
func (*PhoneNumberManager) VerifyCode ¶
func (manager *PhoneNumberManager) VerifyCode(phoneNumberId, verificationCode string) (VerifyCodeResponse, error)
type PhoneNumberManagerConfig ¶
type PhoneNumberManagerConfig struct {
BusinessAccountId string
ApiAccessToken string
Requester *request_client.RequestClient
}
PhoneNumberManagerConfig holds the configuration for PhoneNumberManager.
type PhoneNumberQualityUpdateCurrentLimitEnum ¶ added in v0.3.0
type PhoneNumberQualityUpdateCurrentLimitEnum string
const ( PhoneNumberQualityUpdateCurrentLimitEnumTier50 PhoneNumberQualityUpdateCurrentLimitEnum = "TIER_50" PhoneNumberQualityUpdateCurrentLimitEnumTier250 PhoneNumberQualityUpdateCurrentLimitEnum = "TIER_250" PhoneNumberQualityUpdateCurrentLimitEnumTier1K PhoneNumberQualityUpdateCurrentLimitEnum = "TIER_1K" PhoneNumberQualityUpdateCurrentLimitEnumTier10K PhoneNumberQualityUpdateCurrentLimitEnum = "TIER_10K" PhoneNumberQualityUpdateCurrentLimitEnumTier100K PhoneNumberQualityUpdateCurrentLimitEnum = "TIER_100K" PhoneNumberQualityUpdateCurrentLimitEnumTierUnlimited PhoneNumberQualityUpdateCurrentLimitEnum = "TIER_UNLIMITED" )
type PhoneNumberQualityUpdateValue ¶
type PhoneNumberQualityUpdateValue struct {
DisplayPhoneNumber string `json:"display_phone_number"`
Event string `json:"event"`
CurrentLimit PhoneNumberQualityUpdateCurrentLimitEnum `json:"current_limit"`
}
type Pricing ¶
type Pricing struct {
PricingModel string `json:"pricing_model"`
Category MessageStatusCategoryEnum `json:"category"`
}
type ProductError ¶ added in v0.3.7
type ProductFeed ¶ added in v0.3.4
type ProductGroup ¶ added in v0.2.0
type ProductItem ¶ added in v0.2.0
type ProductItem struct {
Id string `json:"id"`
AdditionalImageCdnUrls []ImageCdnUrl `json:"additional_image_cdn_urls,omitempty"`
AdditionalImageUrls []string `json:"additional_image_urls,omitempty"`
AdditionalVariantAttributes []KeyValue `json:"additional_variant_attributes,omitempty"`
AgeGroup string `json:"age_group,omitempty"`
Applinks *Applinks `json:"applinks,omitempty"`
Availability string `json:"availability,omitempty"`
Brand string `json:"brand,omitempty"`
CapabilityToReviewStatus []KeyValue `json:"capability_to_review_status,omitempty"`
Category string `json:"category,omitempty"`
CategorySpecificFields string `json:"category_specific_fields,omitempty"`
Color string `json:"color,omitempty"`
CommerceInsights string `json:"commerce_insights,omitempty"`
Condition string `json:"condition,omitempty"`
Currency string `json:"currency,omitempty"`
CustomData []KeyValue `json:"custom_data,omitempty"`
CustomLabel0 string `json:"custom_label_0,omitempty"`
CustomLabel1 string `json:"custom_label_1,omitempty"`
CustomLabel2 string `json:"custom_label_2,omitempty"`
CustomLabel3 string `json:"custom_label_3,omitempty"`
CustomLabel4 string `json:"custom_label_4,omitempty"`
CustomNumber0 string `json:"custom_number_0,omitempty"`
CustomNumber1 string `json:"custom_number_1,omitempty"`
CustomNumber2 string `json:"custom_number_2,omitempty"`
CustomNumber3 string `json:"custom_number_3,omitempty"`
CustomNumber4 string `json:"custom_number_4,omitempty"`
Description string `json:"description,omitempty"`
Errors []ProductError `json:"errors,omitempty"`
ExpirationDate string `json:"expiration_date,omitempty"`
FbProductCategory string `json:"fb_product_category,omitempty"`
Gender string `json:"gender,omitempty"`
Gtin string `json:"gtin,omitempty"`
ImageCdnUrls []ImageCdnUrl `json:"image_cdn_urls,omitempty"`
ImageFetchStatus string `json:"image_fetch_status,omitempty"`
ImageUrl string `json:"image_url,omitempty"`
Images []string `json:"images,omitempty"`
ImporterAddress string `json:"importer_address,omitempty"`
ImporterName string `json:"importer_name,omitempty"`
InvalidationErrors []string `json:"invalidation_errors,omitempty"`
Inventory int `json:"inventory,omitempty"`
ManufacturerInfo string `json:"manufacturer_info,omitempty"`
ManufacturerPartNumber string `json:"manufacturer_part_number,omitempty"`
MarkedForProductLaunch string `json:"marked_for_product_launch,omitempty"`
Material string `json:"material,omitempty"`
MobileLink string `json:"mobile_link,omitempty"`
Name string `json:"name,omitempty"`
OrderingIndex int `json:"ordering_index,omitempty"`
OriginCountry string `json:"origin_country,omitempty"`
ParentProductID string `json:"parent_product_id,omitempty"`
Pattern string `json:"pattern,omitempty"`
PostConversionSignalBasedEnforcementAppealEligibility bool `json:"post_conversion_signal_based_enforcement_appeal_eligibility,omitempty"`
Price string `json:"price,omitempty"`
ProductFeed *ProductFeed `json:"product_feed,omitempty"`
ProductGroup *ProductGroup `json:"product_group,omitempty"`
ProductLocalInfo string `json:"product_local_info,omitempty"`
ProductType string `json:"product_type,omitempty"`
QuantityToSellOnFacebook int `json:"quantity_to_sell_on_facebook,omitempty"`
RetailerId string `json:"retailer_id,omitempty"`
RetailerProductGroupID string `json:"retailer_product_group_id,omitempty"`
ReviewRejectionReasons []string `json:"review_rejection_reasons,omitempty"`
ReviewStatus string `json:"review_status,omitempty"`
SalePrice string `json:"sale_price,omitempty"`
SalePriceEndDate string `json:"sale_price_end_date,omitempty"`
SalePriceStartDate string `json:"sale_price_start_date,omitempty"`
ShippingWeightUnit string `json:"shipping_weight_unit,omitempty"`
ShippingWeightValue float64 `json:"shipping_weight_value,omitempty"`
ShortDescription string `json:"short_description,omitempty"`
Size string `json:"size,omitempty"`
StartDate string `json:"start_date,omitempty"`
Tags []string `json:"tags,omitempty"`
Url string `json:"url,omitempty"`
VendorId string `json:"vendor_id,omitempty"`
VideoFetchStatus string `json:"video_fetch_status,omitempty"`
Visibility string `json:"visibility,omitempty"`
WaComplianceCategory string `json:"wa_compliance_category,omitempty"`
}
type ProductSet ¶ added in v0.2.0
type ProductSet struct {
Id string `json:"id"`
AutoCreationUrl string `json:"auto_creation_url,omitempty"`
Filter string `json:"filter,omitempty"`
LatestMetadata ProductSetMetadata `json:"latest_metadata,omitempty"`
LiveMetadata ProductSetMetadata `json:"live_metadata,omitempty"`
Name string `json:"name"`
// Omit full ProductCatalog to avoid cyclic properties; use catalog Id instead.
ProductCount uint32 `json:"product_count"`
RetailerId string `json:"retailer_id,omitempty"`
}
ProductSet represents a product set within a catalog.
type ProductSetMetadata ¶ added in v0.2.0
type ProductSetMetadata struct {
// Define minimal metadata fields as needed.
// For example:
UpdateTime string `json:"update_time,omitempty"`
}
ProductSetMetadata represents metadata for a product set.
type RequestVerificationCodeResponse ¶
type RequestVerificationCodeResponse struct {
Success bool `json:"success,omitempty"`
}
type SecurityValue ¶
type SystemNotificationTypeEnum ¶
type SystemNotificationTypeEnum string
const ( SystemNotificationTypeCustomerPhoneNumberChange SystemNotificationTypeEnum = "user_changed_number" SystemNotificationTypeCustomerIdentityChanged SystemNotificationTypeEnum = "customer_identity_changed" )
type TemplateCategoryUpdateValue ¶
type TemplateCategoryUpdateValue struct {
MessageTemplateId int64 `json:"message_template_id"`
MessageTemplateName string `json:"message_template_name"`
MessageTemplateLanguage string `json:"message_template_language"`
PreviousCategory MessageTemplateCategory `json:"previous_category"`
NewCategory MessageTemplateCategory `json:"new_category"`
CorrectCategory MessageTemplateCategory `json:"correct_category"`
}
type TemplateManager ¶
type TemplateManager struct {
// contains filtered or unexported fields
}
TemplateManager is responsible for managing WhatsApp Business message templates.
func NewTemplateManager ¶
func NewTemplateManager(config *TemplateManagerConfig) *TemplateManager
NewTemplateManager creates a new TemplateManager with the given configuration.
func (*TemplateManager) Create ¶
func (manager *TemplateManager) Create(body WhatsappMessageTemplateCreateRequestBody) (*MessageTemplateCreationResponse, error)
Create sends a creation request for a message template.
func (*TemplateManager) Delete ¶
func (tm *TemplateManager) Delete(id string)
Delete dissociates a template (delete implementation to be added as needed).
func (*TemplateManager) Fetch ¶
func (manager *TemplateManager) Fetch(Id string) (*WhatsAppBusinessMessageTemplateNode, error)
Fetch fetches a single WhatsApp Business message template by its ID.
func (*TemplateManager) FetchAll ¶
func (manager *TemplateManager) FetchAll() (*WhatsAppBusinessTemplatesFetchResponseEdge, error)
FetchAll fetches all WhatsApp Business message templates.
func (*TemplateManager) MigrateFromOtherBusinessAccount ¶
func (manager *TemplateManager) MigrateFromOtherBusinessAccount(sourcePageNumber int, sourceWabaId int) (*TemplateMigrationResponse, error)
MigrateFromOtherBusinessAccount migrates templates from another business account.
func (*TemplateManager) Update ¶
func (manager *TemplateManager) Update(templateId string, updates WhatsAppBusinessAccountMessageTemplateUpdateRequestBody) (*MessageTemplateCreationResponse, error)
Update sends an update request for a template.
type TemplateManagerConfig ¶
type TemplateManagerConfig struct {
BusinessAccountId string
ApiAccessToken string
Requester *request_client.RequestClient
}
TemplateManagerConfig represents the configuration for creating a new TemplateManager.
type TemplateMessageButtonType ¶
type TemplateMessageButtonType string
TemplateMessageButtonType represents the type of a button.
const ( TemplateMessageButtonTypeQuickReply TemplateMessageButtonType = "QUICK_REPLY" TemplateMessageButtonTypeUrl TemplateMessageButtonType = "URL" TemplateMessageButtonTypePhoneNumber TemplateMessageButtonType = "PHONE_NUMBER" TemplateMessageButtonTypeCopyCode TemplateMessageButtonType = "COPY_CODE" TemplateMessageButtonTypeCatalog TemplateMessageButtonType = "CATALOG" TemplateMessageButtonTypeMultiProductMessage TemplateMessageButtonType = "MPM" )
type TemplateMessageComponentButton ¶
type TemplateMessageComponentButton struct {
Type TemplateMessageButtonType `json:"type,omitempty"`
Text string `json:"text,omitempty"`
PhoneNumber string `json:"phone_number,omitempty"` // required when Type = PHONE_NUMBER
Example []string `json:"example,omitempty"` // required when Type = URL and button uses a variable
Url string `json:"url,omitempty"` // required when Type = URL
}
TemplateMessageComponentButton represents a button component in a message template.
type TemplateMessageComponentCard ¶
type TemplateMessageComponentCard struct {
// Add card-specific fields if needed.
Components []WhatsAppBusinessHSMWhatsAppHSMComponent `json:"components,omitempty"`
}
TemplateMessageComponentCard represents a card component in a message template.
type TemplateMessageComponentExample ¶
type TemplateMessageComponentExample struct {
HeaderHandle *[]string `json:"header_handle,omitempty"` // for media headers (IMAGE, VIDEO, DOCUMENT)
HeaderTextNamedParams *[]NamedParamExample `json:"header_text_named_params,omitempty"` // for named header params
HeaderText *[]string `json:"header_text,omitempty"` // for text headers (positional examples)
BodyText *[][]string `json:"body_text,omitempty"` // for body components (array of arrays for positional examples)
BodyTextNamedParams *[]NamedParamExample `json:"body_text_named_params,omitempty"`
}
TemplateMessageComponentExample represents an example object for a template component.
type TemplateMessageLimitedTimeOfferParameter ¶
type TemplateMessageLimitedTimeOfferParameter struct {
Text string `json:"text,omitempty"`
HasExpiration bool `json:"has_expiration,omitempty"`
}
TemplateMessageLimitedTimeOfferParameter represents a limited time offer parameter.
type TemplateMessagePreviewEdge ¶
type TemplateMessagePreviewEdge struct {
Data []TemplateMessagePreviewNode `json:"data,omitempty"`
Paging internal.WhatsAppBusinessApiPaginationMeta `json:"paging,omitempty"`
}
TemplateMessagePreviewEdge represents the preview response.
type TemplateMessagePreviewNode ¶
type TemplateMessagePreviewNode struct {
Body string `json:"body,omitempty"`
Buttons []WhatsAppBusinessAccountMessageTemplatePreviewButton `json:"buttons,omitempty"`
Header string `json:"header,omitempty"`
Language string `json:"language,omitempty"`
}
TemplateMessagePreviewNode represents a preview node.
type TemplateMessageQualityScore ¶
type TemplateMessageQualityScore struct {
Date int `json:"date,omitempty"`
Reasons []string `json:"reasons,omitempty"`
Score int `json:"score,omitempty"`
}
TemplateMessageQualityScore represents the quality score of a template.
type TemplateMessageRejectionReasonEnum ¶
type TemplateMessageRejectionReasonEnum string
const ( TemplateMessageRejectionReasonEnumAbusiveContent TemplateMessageRejectionReasonEnum = "ABUSIVE_CONTENT" TemplateMessageRejectionReasonEnumIncorrectCategory TemplateMessageRejectionReasonEnum = "INCORRECT_CATEGORY" TemplateMessageRejectionReasonEnumInvalidFormat TemplateMessageRejectionReasonEnum = "INVALID_FORMAT" TemplateMessageRejectionReasonEnumNone TemplateMessageRejectionReasonEnum = "NONE" TemplateMessageRejectionReasonEnumScam TemplateMessageRejectionReasonEnum = "SCAM" )
type TemplateMessageStatusUpdateDisableInfo ¶
type TemplateMessageStatusUpdateDisableInfo struct {
DisableDate string `json:"disable_date"`
}
type TemplateMessageStatusUpdateEventEnum ¶
type TemplateMessageStatusUpdateEventEnum string
const ( TemplateMessageStatusUpdateEventEnumApproved TemplateMessageStatusUpdateEventEnum = "APPROVED" TemplateMessageStatusUpdateEventEnumRejected TemplateMessageStatusUpdateEventEnum = "REJECTED" TemplateMessageStatusUpdateEventEnumFlaggedForDisabling TemplateMessageStatusUpdateEventEnum = "FLAGGED" TemplateMessageStatusUpdateEventEnumPaused TemplateMessageStatusUpdateEventEnum = "PAUSED" TemplateMessageStatusUpdateEventEnumPendingDeletion TemplateMessageStatusUpdateEventEnum = "PENDING_DELETION" )
type TemplateMessageStatusUpdateOtherInfo ¶
type TemplateMessageStatusUpdateOtherInfo struct {
Title string `json:"title"`
}
type TemplateMigrationResponse ¶
type TemplateMigrationResponse struct {
MigratedTemplates []string `json:"migrated_templates,omitempty"`
FailedTemplates map[string]string `json:"failed_templates,omitempty"`
}
TemplateMigrationResponse represents the migration response.
type TemplateQualityUpdateValue ¶
type TemplateQualityUpdateValue struct {
PreviousQualityScore string `json:"previous_quality_score"`
NewQualityScore string `json:"new_quality_score"`
MessageTemplateId int64 `json:"message_template_id"`
MessageTemplateName string `json:"message_template_name"`
MessageTemplateLanguage string `json:"message_template_language"`
}
type TemplateStatusUpdateValue ¶
type TemplateStatusUpdateValue struct {
Event TemplateMessageStatusUpdateEventEnum `json:"event"`
MessageTemplateId int64 `json:"message_template_id"`
MessageTemplateName string `json:"message_template_name"`
MessageTemplateLanguage string `json:"message_template_language"`
Reason TemplateMessageRejectionReasonEnum `json:"reason"`
DisableInfo TemplateMessageStatusUpdateDisableInfo `json:"disable_info,omitempty"`
OtherInfo TemplateMessageStatusUpdateOtherInfo `json:"other_info,omitempty"`
}
type VerifyCodeMethod ¶
type VerifyCodeMethod string
const ( VerifyCodeMethodSms VerifyCodeMethod = "SMS" VerifyCodeMethodVoice VerifyCodeMethod = "VOICE" )
type VerifyCodeResponse ¶
type VerifyCodeResponse struct {
Success bool `json:"success,omitempty"`
}
type WebApplink ¶ added in v0.2.0
type WebhookFieldEnum ¶
type WebhookFieldEnum string
const ( WebhookFieldEnumAccountAlerts WebhookFieldEnum = "account_alerts" WebhookFieldEnumMessages WebhookFieldEnum = "messages" WebhookFieldEnumSecurity WebhookFieldEnum = "security" WebhookFieldEnumAccountUpdate WebhookFieldEnum = "account_update" WebhookFieldEnumAccountReview WebhookFieldEnum = "account_review" WebhookFieldEnumBusinessCapability WebhookFieldEnum = "business_capability" WebhookFieldEnumMessageTemplateQuality WebhookFieldEnum = "message_template_quality" WebhookFieldEnumMessageTemplateStatus WebhookFieldEnum = "message_template_status" WebhookFieldEnumPhoneNumberName WebhookFieldEnum = "phone_number_name" WebhookFieldEnumPhoneNumberQuality WebhookFieldEnum = "phone_number_quality" WebhookFieldEnumTemplateCategoryUpdate WebhookFieldEnum = "template_category" )
type WebhookManager ¶
type WebhookManager struct {
EventManager EventManager
Requester request_client.RequestClient
// contains filtered or unexported fields
}
WebhookManager represents a manager for handling webhooks.
func NewWebhook ¶
func NewWebhook(options *WebhookManagerConfig) *WebhookManager
NewWebhook creates a new WebhookManager with the given options.
func (*WebhookManager) GetRequestHandler ¶
func (wh *WebhookManager) GetRequestHandler(c echo.Context) error
GetRequestHandler handles GET requests to the webhook endpoint.
func (*WebhookManager) ListenToEvents ¶
func (wh *WebhookManager) ListenToEvents()
ListenToEvents starts listening to events and handles incoming requests.
func (*WebhookManager) PostRequestHandler ¶
func (wh *WebhookManager) PostRequestHandler(c echo.Context) error
PostRequestHandler handles POST requests to the webhook endpoint.
type WebhookManagerConfig ¶
type WebhookManagerConfig struct {
Secret string `validate:"required"`
EventManager EventManager `validate:"required"`
Requester request_client.RequestClient `validate:"required"`
Path string
Port int
}
WebhookManagerConfig represents the configuration options for creating a new WebhookManager.
type WhatsAppBusinessAccountMessageTemplateDeleteRequestBody ¶
type WhatsAppBusinessAccountMessageTemplateDeleteRequestBody struct {
HsmId string `json:"hsm_id,omitempty"`
Name string `json:"name,omitempty"`
}
WhatsAppBusinessAccountMessageTemplateDeleteRequestBody represents the request body for deleting a template.
type WhatsAppBusinessAccountMessageTemplatePreviewButton ¶
type WhatsAppBusinessAccountMessageTemplatePreviewButton struct {
AutoFillText string `json:"auto_fill_text,omitempty"`
Text string `json:"text,omitempty"`
}
WhatsAppBusinessAccountMessageTemplatePreviewButton represents a preview button.
type WhatsAppBusinessAccountMessageTemplateUpdateRequestBody ¶
type WhatsAppBusinessAccountMessageTemplateUpdateRequestBody struct {
Components []WhatsappMessageTemplateComponentCreateOrUpdateRequestBody `json:"components,omitempty"`
Category string `json:"category,omitempty"`
MessageSendTtlSeconds int `json:"message_send_ttl_seconds,omitempty"`
}
WhatsAppBusinessAccountMessageTemplateUpdateRequestBody represents the request body for updating a template.
type WhatsAppBusinessHSMWhatsAppHSMComponent ¶
type WhatsAppBusinessHSMWhatsAppHSMComponent struct {
AddSecurityRecommendation bool `json:"add_security_recommendation,omitempty"`
Buttons []TemplateMessageComponentButton `json:"buttons,omitempty"`
Cards []TemplateMessageComponentCard `json:"cards,omitempty"`
CodeExpirationMinutes int `json:"code_expiration_minutes,omitempty"`
Example *TemplateMessageComponentExample `json:"example,omitempty"`
Format MessageTemplateComponentFormat `json:"format,omitempty"`
LimitedTimeOffer *TemplateMessageLimitedTimeOfferParameter `json:"limited_time_offer,omitempty"`
Text string `json:"text,omitempty"`
Type MessageTemplateComponentType `json:"type,omitempty"`
}
WhatsAppBusinessHSMWhatsAppHSMComponent represents a component in a message template. Note: The "Type" field here now uses MessageTemplateComponentType.
type WhatsAppBusinessMessageTemplateNode ¶
type WhatsAppBusinessMessageTemplateNode struct {
Id string `json:"id,omitempty"`
Category MessageTemplateCategory `json:"category,omitempty"`
Components []WhatsAppBusinessHSMWhatsAppHSMComponent `json:"components,omitempty"`
CorrectCategory string `json:"correct_category,omitempty"`
CtaUrlLinkTrackingOptedOut bool `json:"cta_url_link_tracking_opted_out,omitempty"`
Language string `json:"language,omitempty"`
LibraryTemplateName string `json:"library_template_name,omitempty"`
MessageSendTtlSeconds int `json:"message_send_ttl_seconds,omitempty"`
Name string `json:"name,omitempty"`
PreviousCategory string `json:"previous_category,omitempty"`
QualityScore TemplateMessageQualityScore `json:"quality_score,omitempty"`
RejectedReason string `json:"rejected_reason,omitempty"`
Status MessageTemplateStatus `json:"status,omitempty"`
}
WhatsAppBusinessMessageTemplateNode represents a WhatsApp Business message template.
type WhatsAppBusinessTemplatesFetchResponseEdge ¶
type WhatsAppBusinessTemplatesFetchResponseEdge struct {
Data []WhatsAppBusinessMessageTemplateNode `json:"data,omitempty"`
Paging internal.WhatsAppBusinessApiPaginationMeta `json:"paging,omitempty"`
}
WhatsAppBusinessTemplatesFetchResponseEdge represents the response structure for fetching templates.
type WhatsappBusinessAccountPhoneNumber ¶
type WhatsappBusinessAccountPhoneNumber struct {
VerifiedName string `json:"verified_name,omitempty"`
DisplayPhoneNumber string `json:"display_phone_number,omitempty"`
Id string `json:"id,omitempty"`
QualityRating string `json:"quality_rating,omitempty"`
CodeVerificationStatus string `json:"code_verification_status,omitempty"`
Status string `json:"status,omitempty"` // CONNECTED
PlatformType string `json:"platform_type,omitempty"`
CountryDialCode string `json:"country_dial_code,omitempty"`
SearchVisibility string `json:"search_visibility,omitempty"`
}
WhatsappBusinessAccountPhoneNumber represents a WhatsApp Business Account phone number.
type WhatsappBusinessAccountPhoneNumberEdge ¶
type WhatsappBusinessAccountPhoneNumberEdge struct {
Data []WhatsappBusinessAccountPhoneNumber `json:"data,omitempty"`
Paging internal.WhatsAppBusinessApiPaginationMeta `json:"paging,omitempty"`
Summary string `json:"summary,omitempty"`
}
WhatsappBusinessAccountPhoneNumberEdge represents a list of WhatsApp Business Account phone numbers.
type WhatsappMessageTemplateButtonCreateRequestBody ¶
type WhatsappMessageTemplateButtonCreateRequestBody struct {
Type string `json:"type,omitempty"`
Text string `json:"text,omitempty"`
Url string `json:"url,omitempty"`
PhoneNumber string `json:"phone_number,omitempty"`
Example []string `json:"example,omitempty"` // For URL buttons with variables.
FlowId string `json:"flow_id,omitempty"`
ZeroTapTermsAccepted bool `json:"zero_tap_terms_accepted,omitempty"`
}
WhatsappMessageTemplateButtonCreateRequestBody represents the request body for creating a button.
type WhatsappMessageTemplateButtonCreateRequestBodyAlias ¶
type WhatsappMessageTemplateButtonCreateRequestBodyAlias = WhatsappMessageTemplateButtonCreateRequestBody
WhatsappMessageTemplateButtonCreateRequestBody alias used in component creation.
type WhatsappMessageTemplateComponentCreateOrUpdateRequestBody ¶
type WhatsappMessageTemplateComponentCreateOrUpdateRequestBody struct {
Type MessageTemplateComponentType `json:"type,omitempty"`
Format MessageTemplateComponentFormat `json:"format,omitempty"`
Text string `json:"text,omitempty"`
Buttons []WhatsappMessageTemplateButtonCreateRequestBody `json:"buttons,omitempty"`
Example *TemplateMessageComponentExample `json:"example,omitempty"`
}
WhatsappMessageTemplateComponentCreateOrUpdateRequestBody represents the request body for creating/updating a component.
type WhatsappMessageTemplateCreateRequestBody ¶
type WhatsappMessageTemplateCreateRequestBody struct {
AllowCategoryChange bool `json:"allow_category_change,omitempty"`
Category string `json:"category,omitempty" validate:"required"`
Components []WhatsappMessageTemplateComponentCreateOrUpdateRequestBody `json:"components" validate:"required"`
Name string `json:"name,omitempty" validate:"required"`
Language string `json:"language" validate:"required"`
LibraryTemplateName string `json:"library_template_name,omitempty"`
LibraryTemplateButtonInputs []WhatsappMessageTemplateButtonCreateRequestBody `json:"library_template_button_inputs,omitempty"`
}
WhatsappMessageTemplateCreateRequestBody represents the request body for creating a message template.
func (*WhatsappMessageTemplateCreateRequestBody) AddComponent ¶
func (body *WhatsappMessageTemplateCreateRequestBody) AddComponent(component WhatsappMessageTemplateComponentCreateOrUpdateRequestBody)
AddComponent appends a component to the template creation request body.