本文整理汇总了Golang中github.com/SparkPost/gosparkpost.Client.MessageEvents方法的典型用法代码示例。如果您正苦于以下问题:Golang Client.MessageEvents方法的具体用法?Golang Client.MessageEvents怎么用?Golang Client.MessageEvents使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类github.com/SparkPost/gosparkpost.Client
的用法示例。
在下文中一共展示了Client.MessageEvents方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Golang代码示例。
示例1: TestMessageEvents
func TestMessageEvents(t *testing.T) {
if true {
// Temporarily disable test so TravisCI reports build success instead of test failure.
return
}
cfgMap, err := test.LoadConfig()
if err != nil {
t.Error(err)
return
}
cfg, err := sp.NewConfig(cfgMap)
if err != nil {
t.Error(err)
return
}
var client sp.Client
err = client.Init(cfg)
if err != nil {
t.Error(err)
return
}
params := map[string]string{
"per_page": "10",
}
eventsPage, err := client.MessageEvents(params)
if err != nil {
t.Error(err)
return
}
if len(eventsPage.Events) == 0 {
t.Error("expected non-empty result")
}
for _, ev := range eventsPage.Events {
switch event := ev.(type) {
case *events.Click, *events.Open, *events.GenerationFailure, *events.GenerationRejection,
*events.ListUnsubscribe, *events.LinkUnsubscribe, *events.PolicyRejection,
*events.RelayInjection, *events.RelayRejection, *events.RelayDelivery,
*events.RelayTempfail, *events.RelayPermfail, *events.SpamComplaint, *events.SMSStatus:
if len(fmt.Sprintf("%v", event)) == 0 {
t.Errorf("Empty output of %T.String()", event)
}
case *events.Bounce, *events.Delay, *events.Delivery, *events.Injection, *events.OutOfBand:
if len(events.ECLog(event)) == 0 {
t.Errorf("Empty output of %T.ECLog()", event)
}
case *events.Unknown:
t.Errorf("Uknown type: %v", event)
default:
t.Errorf("Uknown type: %T", event)
}
}
eventsPage, err = eventsPage.Next()
if err != nil && err != sp.ErrEmptyPage {
t.Error(err)
} else {
if len(eventsPage.Events) == 0 {
t.Error("expected non-empty result")
}
}
}
示例2: main
//.........这里部分代码省略.........
},
cli.StringFlag{
Name: "reason",
Value: "",
Usage: "Optional bounce/failure/rejection reason that will be matched using a wildcard (e.g., %%reason%%). Example: bounce.",
},
cli.StringFlag{
Name: "recipients",
Value: "",
Usage: "Optional Comma-delimited list of recipients to search. Example: [email protected]",
},
cli.StringFlag{
Name: "template_ids",
Value: "",
Usage: "Optional Comma-delimited list of template ID's to search. Example: templ-1234.",
},
cli.StringFlag{
Name: "timezone",
Value: "",
Usage: "Optional Standard timezone identification string. Example: America/New_York. Default: UTC",
},
cli.StringFlag{
Name: "to",
Value: "",
Usage: "Optional Datetime in format of YYYY-MM-DDTHH:MM. Example: 2016-02-10T00:00. Default: now.",
},
cli.StringFlag{
Name: "transmission_ids",
Value: "",
Usage: "Optional Comma-delimited list of transmission ID's to search (i.e. id generated during creation of a transmission). Example: 65832150921904138.",
},
cli.StringFlag{
Name: "subaccounts",
Value: "",
Usage: "Optional Comma-delimited list of subaccount ID's to search. Example: 101",
},
}
app.Action = func(c *cli.Context) {
if c.String("baseurl") == "" {
log.Fatalf("Error: SparkPost BaseUrl must be set\n")
return
}
if c.String("apikey") == "" && c.String("username") == "" && c.String("password") == "" {
log.Fatalf("Error: SparkPost API key must be set\n")
return
}
isVerbose := false
if c.String("verbose") == "true" {
isVerbose = true
}
//println("SparkPost baseUrl: ", c.String("baseurl"))
cfg := &sp.Config{
BaseUrl: c.String("baseurl"),
ApiKey: c.String("apikey"),
Username: c.String("username"),
Password: c.String("password"),
ApiVersion: 1,
Verbose: isVerbose,
}
var client sp.Client
err := client.Init(cfg)
if err != nil {
log.Fatalf("SparkPost client init failed: %s\n", err)
}
parameters := make(map[string]string)
for i, val := range VALID_PARAMETERS {
if c.String(VALID_PARAMETERS[i]) != "" {
parameters[val] = c.String(val)
}
}
e, err := client.MessageEvents(parameters)
//e, err := client.SearchMessageEvents(nil)
if err != nil {
log.Fatalf("Error: %s\n For additional information try using `--verbose true`\n", err)
return
} else {
for index, element := range e.Events {
log.Printf("%d\t %s%s", index, element, "\n")
//log.Printf("%d\t %v\n", index, element)
}
log.Printf("\t-------------------\n")
log.Printf("\tResult Count: %d\n", e.TotalCount)
}
}
app.Run(os.Args)
}