code: func CheckMessage(req PushNotification) error {
  	var msg string
  
  	// ignore send topic mesaage from FCM
  	if !req.IsTopic() && len(req.Tokens) == 0 && len(req.To) == 0 {
  		msg = "the message must specify at least one registration ID"
  		LogAccess.Debug(msg)
  		return errors.New(msg)
  	}
  
  	if len(req.Tokens) == PlatFormIos && len(req.Tokens[0]) == 0 {
  		msg = "the token must not be empty"
  		LogAccess.Debug(msg)
  		return errors.New(msg)
  	}
  
  	if req.Platform == PlatFormAndroid && len(req.Tokens) > 1000 {
  		msg = "the message may specify at most 1000 registration IDs"
  		LogAccess.Debug(msg)
  		return errors.New(msg)
  	}
  
  	// ref: https://firebase.google.com/docs/cloud-messaging/http-server-ref
  	if req.Platform == PlatFormAndroid && req.TimeToLive != nil && (*req.TimeToLive < uint(0) || uint(2419200) < *req.TimeToLive) {
  		msg = "the message's TimeToLive field must be an integer " +
  			"between 0 and 2419200 (4 weeks)"
  		LogAccess.Debug(msg)
  		return errors.New(msg)
  	}
  
  	return nil
  }
docs: // CheckMessage for check request message