1
0
mirror of synced 2024-11-22 13:06:05 +03:00
mg-transport-api-client-go/v1/doc.go

94 lines
2.6 KiB
Go
Raw Normal View History

2023-12-29 11:24:23 +03:00
// Package v1 provides Go API Client implementation for MessageGateway Transport API.
//
// You can use v1.New or v1.NewWithClient to initialize API client. github.com/retailcrm/mg-transport-api-client-go/examples
// package contains some examples on how to use this library properly.
//
// Basic usage example:
//
// client := New("https://message-gateway.url", "cb8ccf05e38a47543ad8477d4999be73bff503ea6")
// getReplyDeadline := func(after time.Duration) *time.Time {
// deadline := time.Now().Add(after)
// return &deadline
// }
//
// resp, status, err := client.Messages(SendData{
// Message: Message{
// ExternalID: "uid_1",
// Type: MsgTypeText,
// Text: "Hello customer!",
// PageLink: "https://example.com",
// },
// Originator: OriginatorCustomer,
// Customer: Customer{
// ExternalID: "client_id_1",
// Nickname: "customer",
// Firstname: "Tester",
// Lastname: "Tester",
// Avatar: "https://example.com/image.png",
// ProfileURL: "https://example.com/user/client_id_1",
// Language: "en",
// Utm: &Utm{
// Source: "myspace.com",
// Medium: "social",
// Campaign: "something",
// Term: "fedora",
// Content: "autumn_collection",
// },
// },
// Channel: 305,
// ExternalChatID: "chat_id_1",
// ReplyDeadline: getReplyDeadline(24 * time.Hour),
// })
// if err != nil {
// log.Fatalf("request error: %s (%d)", err, status)
// }
//
// log.Printf("status: %d, message ID: %d", status, resp.MessageID)
package v1
import (
"log"
"time"
)
func ooga() {
client := New("https://message-gateway.url", "cb8ccf05e38a47543ad8477d4999be73bff503ea6")
getReplyDeadline := func(after time.Duration) *time.Time {
deadline := time.Now().Add(after)
return &deadline
}
resp, status, err := client.Messages(SendData{
Message: Message{
ExternalID: "uid_1",
Type: MsgTypeText,
Text: "Hello customer!",
PageLink: "https://example.com",
},
Originator: OriginatorCustomer,
Customer: Customer{
ExternalID: "client_id_1",
Nickname: "customer",
Firstname: "Tester",
Lastname: "Tester",
Avatar: "https://example.com/image.png",
ProfileURL: "https://example.com/user/client_id_1",
Language: "en",
Utm: &Utm{
Source: "myspace.com",
Medium: "social",
Campaign: "something",
Term: "fedora",
Content: "autumn_collection",
},
},
Channel: 305,
ExternalChatID: "chat_id_1",
ReplyDeadline: getReplyDeadline(24 * time.Hour),
})
if err != nil {
log.Fatalf("request error: %s (%d)", err, status)
}
log.Printf("status: %d, message ID: %d", status, resp.MessageID)
}