func main() { var deviceToken, filename, password, environment string flag.StringVar(&deviceToken, "d", "", "Device token") flag.StringVar(&filename, "c", "", "Path to p12 certificate file") flag.StringVar(&password, "p", "", "Password for p12 file.") flag.StringVar(&environment, "e", "development", "Environment") flag.Parse() cert, key, err := certificate.Load(filename, password) if err != nil { log.Fatal(err) } service := push.Service{ Client: push.NewClient(certificate.TLS(cert, key)), Host: push.Development, } if environment == "production" { service.Host = push.Production } p := payload.APS{ Alert: payload.Alert{Body: "Hello HTTP/2"}, Badge: badge.New(42), } id, err := service.Push(deviceToken, &push.Headers{}, p) if err != nil { log.Fatal(err) } log.Println("apns-id:", id) }
func main() { var filename, password string flag.StringVar(&filename, "c", "", "Path to p12 certificate file") flag.StringVar(&password, "p", "", "Password for p12 file.") flag.Parse() var err error cert, privateKey, err = certificate.Load(filename, password) if err != nil { log.Fatal(err) } service = push.Service{ Client: push.NewClient(certificate.TLS(cert, privateKey)), Host: push.Production, } r := mux.NewRouter() r.HandleFunc("/", indexHandler).Methods("GET") r.HandleFunc("/request", requestPermissionHandler) r.HandleFunc("/push", pushHandler) r.HandleFunc("/click", clickHandler).Methods("GET") // WebServiceURL endpoints r.HandleFunc("/v1/pushPackages/{websitePushID}", pushPackagesHandler).Methods("POST") r.HandleFunc("/v1/devices/{deviceToken}/registrations/{websitePushID}", registerDeviceHandler).Methods("POST") r.HandleFunc("/v1/devices/{deviceToken}/registrations/{websitePushID}", forgetDeviceHandler).Methods("DELETE") r.HandleFunc("/v1/log", logHandler).Methods("POST") http.ListenAndServe(":5000", r) }