api: google.golang.org/api/fcm/v1 Index | Files

package fcm

import "google.golang.org/api/fcm/v1"

Package fcm provides access to the Firebase Cloud Messaging API.

For product documentation, see: https://firebase.google.com/docs/cloud-messaging

Creating a client

Usage example:

import "google.golang.org/api/fcm/v1"
...
ctx := context.Background()
fcmService, err := fcm.NewService(ctx)

In this example, Google Application Default Credentials are used for authentication.

For information on how to create and obtain Application Default Credentials, see https://developers.google.com/identity/protocols/application-default-credentials.

Other authentication options

To use an API key for authentication (note: some APIs do not support API keys), use option.WithAPIKey:

fcmService, err := fcm.NewService(ctx, option.WithAPIKey("AIza..."))

To use an OAuth token (e.g., a user token obtained via a three-legged OAuth flow), use option.WithTokenSource:

config := &oauth2.Config{...}
// ...
token, err := config.Exchange(ctx, ...)
fcmService, err := fcm.NewService(ctx, option.WithTokenSource(config.TokenSource(ctx, token)))

See https://godoc.org/google.golang.org/api/option/ for details on options.

Index

Package Files

fcm-gen.go

Constants

const (
    // View and manage your data across Google Cloud Platform services
    CloudPlatformScope = "https://www.googleapis.com/auth/cloud-platform"
)

OAuth2 scopes used by this API.

type AndroidConfig Uses

type AndroidConfig struct {
    // CollapseKey: An identifier of a group of messages that can be
    // collapsed, so that only
    // the last message gets sent when delivery can be resumed. A maximum of
    // 4
    // different collapse keys is allowed at any given time.
    CollapseKey string `json:"collapseKey,omitempty"`

    // Data: Arbitrary key/value payload. If present, it will
    // override
    // google.firebase.fcm.v1.Message.data.
    Data map[string]string `json:"data,omitempty"`

    // FcmOptions: Options for features provided by the FCM SDK for Android.
    FcmOptions *AndroidFcmOptions `json:"fcmOptions,omitempty"`

    // Notification: Notification to send to android devices.
    Notification *AndroidNotification `json:"notification,omitempty"`

    // Priority: Message priority. Can take "normal" and "high" values.
    // For more information, see [Setting the priority of
    // a
    // message](https://goo.gl/GjONJv).
    //
    // Possible values:
    //   "NORMAL" - Default priority for data messages. Normal priority
    // messages won't open
    // network connections on a sleeping device, and their delivery may
    // be
    // delayed to conserve the battery. For less time-sensitive messages,
    // such
    // as notifications of new email or other data to sync, choose
    // normal
    // delivery priority.
    //   "HIGH" - Default priority for notification messages. FCM attempts
    // to deliver high
    // priority messages immediately, allowing the FCM service to wake
    // a
    // sleeping device when possible and open a network connection to your
    // app
    // server. Apps with instant messaging, chat, or voice call alerts,
    // for
    // example, generally need to open a network connection and make sure
    // FCM
    // delivers the message to the device without delay. Set high priority
    // if
    // the message is time-critical and requires the user's
    // immediate
    // interaction, but beware that setting your messages to high
    // priority
    // contributes more to battery drain compared with normal priority
    // messages.
    Priority string `json:"priority,omitempty"`

    // RestrictedPackageName: Package name of the application where the
    // registration token must match in
    // order to receive the message.
    RestrictedPackageName string `json:"restrictedPackageName,omitempty"`

    // Ttl: How long (in seconds) the message should be kept in FCM storage
    // if the
    // device is offline. The maximum time to live supported is 4 weeks, and
    // the
    // default value is 4 weeks if not set. Set it to 0 if want to send
    // the
    // message immediately.
    // In JSON format, the Duration type is encoded as a string rather than
    // an
    // object, where the string ends in the suffix "s" (indicating seconds)
    // and
    // is preceded by the number of seconds, with nanoseconds expressed
    // as
    // fractional seconds. For example, 3 seconds with 0 nanoseconds should
    // be
    // encoded in JSON format as "3s", while 3 seconds and 1 nanosecond
    // should
    // be expressed in JSON format as "3.000000001s". The ttl will be
    // rounded down
    // to the nearest second.
    Ttl string `json:"ttl,omitempty"`

    // ForceSendFields is a list of field names (e.g. "CollapseKey") to
    // unconditionally include in API requests. By default, fields with
    // empty values are omitted from API requests. However, any non-pointer,
    // non-interface field appearing in ForceSendFields will be sent to the
    // server regardless of whether the field is empty or not. This may be
    // used to include empty fields in Patch requests.
    ForceSendFields []string `json:"-"`

    // NullFields is a list of field names (e.g. "CollapseKey") to include
    // in API requests with the JSON null value. By default, fields with
    // empty values are omitted from API requests. However, any field with
    // an empty value appearing in NullFields will be sent to the server as
    // null. It is an error if a field in this list has a non-empty value.
    // This may be used to include null fields in Patch requests.
    NullFields []string `json:"-"`
}

AndroidConfig: Android specific options for messages sent through [FCM connection server](https://goo.gl/4GLdUl).

func (*AndroidConfig) MarshalJSON Uses

func (s *AndroidConfig) MarshalJSON() ([]byte, error)

type AndroidFcmOptions Uses

type AndroidFcmOptions struct {
    // AnalyticsLabel: Label associated with the message's analytics data.
    AnalyticsLabel string `json:"analyticsLabel,omitempty"`

    // ForceSendFields is a list of field names (e.g. "AnalyticsLabel") to
    // unconditionally include in API requests. By default, fields with
    // empty values are omitted from API requests. However, any non-pointer,
    // non-interface field appearing in ForceSendFields will be sent to the
    // server regardless of whether the field is empty or not. This may be
    // used to include empty fields in Patch requests.
    ForceSendFields []string `json:"-"`

    // NullFields is a list of field names (e.g. "AnalyticsLabel") to
    // include in API requests with the JSON null value. By default, fields
    // with empty values are omitted from API requests. However, any field
    // with an empty value appearing in NullFields will be sent to the
    // server as null. It is an error if a field in this list has a
    // non-empty value. This may be used to include null fields in Patch
    // requests.
    NullFields []string `json:"-"`
}

AndroidFcmOptions: Options for features provided by the FCM SDK for Android.

func (*AndroidFcmOptions) MarshalJSON Uses

func (s *AndroidFcmOptions) MarshalJSON() ([]byte, error)

type AndroidNotification Uses

type AndroidNotification struct {
    // Body: The notification's body text. If present, it will
    // override
    // google.firebase.fcm.v1.Notification.body.
    Body string `json:"body,omitempty"`

    // BodyLocArgs: Variable string values to be used in place of the format
    // specifiers in
    // body_loc_key to use to localize the body text to the user's
    // current
    // localization.
    // See [Formatting and Styling](https://goo.gl/MalYE3) for more
    // information.
    BodyLocArgs []string `json:"bodyLocArgs,omitempty"`

    // BodyLocKey: The key to the body string in the app's string resources
    // to use to localize
    // the body text to the user's current localization.
    // See [String Resources](https://goo.gl/NdFZGI) for more information.
    BodyLocKey string `json:"bodyLocKey,omitempty"`

    // ChannelId: The [notification's
    // channel
    // id](https://developer.android.com/guide/topics/ui/notifiers/no
    // tifications#ManageChannels)
    // (new in Android O). The app must create a channel with this channel
    // ID
    // before any notification with this channel ID is received. If you
    // don't send
    // this channel ID in the request, or if the channel ID provided has not
    // yet
    // been created by the app, FCM uses the channel ID specified in the
    // app
    // manifest.
    ChannelId string `json:"channelId,omitempty"`

    // ClickAction: The action associated with a user click on the
    // notification.
    // If specified, an activity with a matching intent filter is launched
    // when
    // a user clicks on the notification.
    ClickAction string `json:"clickAction,omitempty"`

    // Color: The notification's icon color, expressed in #rrggbb format.
    Color string `json:"color,omitempty"`

    // DefaultLightSettings: If set to true, use the Android framework's
    // default LED light settings for
    // the notification. Default values are specified
    // in
    // [config.xml](https://android.googlesource.com/platform/frameworks/b
    // ase/+/master/core/res/res/values/config.xml).
    // If `default_light_settings` is set to true and `light_settings` is
    // also
    // set, the user-specified `light_settings` is used instead of
    // the
    // default value.
    DefaultLightSettings bool `json:"defaultLightSettings,omitempty"`

    // DefaultSound: If set to true, use the Android framework's default
    // sound for the
    // notification. Default values are specified
    // in
    // [config.xml](https://android.googlesource.com/platform/frameworks/b
    // ase/+/master/core/res/res/values/config.xml).
    DefaultSound bool `json:"defaultSound,omitempty"`

    // DefaultVibrateTimings: If set to true, use the Android framework's
    // default vibrate pattern for the
    // notification. Default values are specified
    // in
    // [config.xml](https://android.googlesource.com/platform/frameworks/b
    // ase/+/master/core/res/res/values/config.xml).
    // If `default_vibrate_timings` is set to true and `vibrate_timings` is
    // also
    // set, the default value is used instead of the
    // user-specified
    // `vibrate_timings`.
    DefaultVibrateTimings bool `json:"defaultVibrateTimings,omitempty"`

    // EventTime: Set the time that the event in the notification occurred.
    // Notifications in
    // the panel are sorted by this time. A point in time is represented
    // using
    // [protobuf.Timestamp](https://developers.google.com/protocol-buff
    // ers/docs/reference/java/com/google/protobuf/Timestamp).
    EventTime string `json:"eventTime,omitempty"`

    // Icon: The notification's icon.
    // Sets the notification icon to myicon for drawable resource myicon.
    // If you don't send this key in the request, FCM displays the launcher
    // icon
    // specified in your app manifest.
    Icon string `json:"icon,omitempty"`

    // Image: Contains the URL of an image that is going to be displayed in
    // a
    // notification. If present, it will
    // override
    // google.firebase.fcm.v1.Notification.image.
    Image string `json:"image,omitempty"`

    // LightSettings: Settings to control the notification's LED blinking
    // rate and color if LED
    // is available on the device. The total blinking time is controlled by
    // the
    // OS.
    LightSettings *LightSettings `json:"lightSettings,omitempty"`

    // LocalOnly: Set whether or not this notification is relevant only to
    // the current
    // device. Some notifications can be bridged to other devices for
    // remote
    // display, such as a Wear OS watch. This hint can be set to recommend
    // this
    // notification not be bridged. See [Wear
    // OS
    // guides](https://developer.android.com/training/wearables/notificati
    // ons/bridger#existing-method-of-preventing-bridging)
    LocalOnly bool `json:"localOnly,omitempty"`

    // NotificationCount: Sets the number of items this notification
    // represents. May be displayed as
    // a badge count for launchers that support badging.See
    // [Notification
    // Badge](https://developer.android.com/training/notify-use
    // r/badges).
    // For example, this might be useful if you're using just one
    // notification to
    // represent multiple new messages but you want the count here to
    // represent
    // the number of total new messages.
    // If zero or unspecified, systems that support badging use the default,
    // which
    // is to increment a number displayed on the long-press menu each time a
    // new
    // notification arrives.
    NotificationCount int64 `json:"notificationCount,omitempty"`

    // NotificationPriority: Set the relative priority for this
    // notification. Priority is an indication
    // of how much of the user's attention should be consumed by
    // this
    // notification. Low-priority notifications may be hidden from the user
    // in
    // certain situations, while the user might be interrupted for
    // a
    // higher-priority notification. The effect of setting the same
    // priorities may
    // differ slightly on different platforms. Note this priority differs
    // from
    // `AndroidMessagePriority`. This priority is processed by the client
    // after
    // the message has been delivered,
    // whereas
    // [AndroidMessagePriority](https://firebase.google.com/docs/refe
    // rence/fcm/rest/v1/projects.messages#androidmessagepriority)
    // is an FCM concept that controls when the message is delivered.
    //
    // Possible values:
    //   "PRIORITY_UNSPECIFIED" - If priority is unspecified, notification
    // priority is set to
    // `PRIORITY_DEFAULT`.
    //   "PRIORITY_MIN" - Lowest notification priority. Notifications with
    // this `PRIORITY_MIN`
    // might not be shown to the user except under special
    // circumstances,
    // such as detailed notification logs.
    //   "PRIORITY_LOW" - Lower notification priority. The UI may choose to
    // show the notifications
    // smaller, or at a different position in the list, compared
    // with
    // notifications with `PRIORITY_DEFAULT`.
    //   "PRIORITY_DEFAULT" - Default notification priority. If the
    // application does not prioritize its
    // own notifications, use this value for all notifications.
    //   "PRIORITY_HIGH" - Higher notification priority. Use this for more
    // important notifications
    // or alerts. The UI may choose to show these notifications larger, or
    // at a
    // different position in the notification lists, compared with
    // notifications
    // with `PRIORITY_DEFAULT`.
    //   "PRIORITY_MAX" - Highest notification priority. Use this for the
    // application's most
    // important items that require the user's prompt attention or input.
    NotificationPriority string `json:"notificationPriority,omitempty"`

    // Sound: The sound to play when the device receives the
    // notification.
    // Supports "default" or the filename of a sound resource bundled in the
    // app.
    // Sound files must reside in /res/raw/.
    Sound string `json:"sound,omitempty"`

    // Sticky: When set to false or unset, the notification is
    // automatically
    // dismissed when the user clicks it in the panel. When set to true,
    // the
    // notification persists even when the user clicks it.
    Sticky bool `json:"sticky,omitempty"`

    // Tag: Identifier used to replace existing notifications in the
    // notification
    // drawer.
    // If not specified, each request creates a new notification.
    // If specified and a notification with the same tag is already being
    // shown,
    // the new notification replaces the existing one in the notification
    // drawer.
    Tag string `json:"tag,omitempty"`

    // Ticker: Sets the "ticker" text, which is sent to accessibility
    // services.
    // Prior to API level 21 (`Lollipop`), sets the text that is displayed
    // in the
    // status bar when the notification first arrives.
    Ticker string `json:"ticker,omitempty"`

    // Title: The notification's title. If present, it will
    // override
    // google.firebase.fcm.v1.Notification.title.
    Title string `json:"title,omitempty"`

    // TitleLocArgs: Variable string values to be used in place of the
    // format specifiers in
    // title_loc_key to use to localize the title text to the user's
    // current
    // localization.
    // See [Formatting and Styling](https://goo.gl/MalYE3) for more
    // information.
    TitleLocArgs []string `json:"titleLocArgs,omitempty"`

    // TitleLocKey: The key to the title string in the app's string
    // resources to use to
    // localize the title text to the user's current localization.
    // See [String Resources](https://goo.gl/NdFZGI) for more information.
    TitleLocKey string `json:"titleLocKey,omitempty"`

    // VibrateTimings: Set the vibration pattern to use. Pass in an array
    // of
    // [protobuf.Duration](https://developers.google.com/protocol-buffers/
    // docs/reference/google.protobuf#google.protobuf.Duration)
    // to turn on or off the vibrator. The first value indicates the
    // `Duration` to
    // wait before turning the vibrator on. The next value indicates
    // the
    // `Duration` to keep the vibrator on. Subsequent values alternate
    // between
    // `Duration` to turn the vibrator off and to turn the vibrator on.
    // If `vibrate_timings` is set and `default_vibrate_timings` is set to
    // `true`,
    // the default value is used instead of the user-specified
    // `vibrate_timings`.
    VibrateTimings []string `json:"vibrateTimings,omitempty"`

    // Visibility: Set
    // the
    // [Notification.visibility](https://developer.android.com/reference/
    // android/app/Notification.html#visibility)
    // of the notification.
    //
    // Possible values:
    //   "VISIBILITY_UNSPECIFIED" - If unspecified, default to
    // `Visibility.PRIVATE`.
    //   "PRIVATE" - Show this notification on all lockscreens, but conceal
    // sensitive or
    // private information on secure lockscreens.
    //   "PUBLIC" - Show this notification in its entirety on all
    // lockscreens.
    //   "SECRET" - Do not reveal any part of this notification on a secure
    // lockscreen.
    Visibility string `json:"visibility,omitempty"`

    // ForceSendFields is a list of field names (e.g. "Body") to
    // unconditionally include in API requests. By default, fields with
    // empty values are omitted from API requests. However, any non-pointer,
    // non-interface field appearing in ForceSendFields will be sent to the
    // server regardless of whether the field is empty or not. This may be
    // used to include empty fields in Patch requests.
    ForceSendFields []string `json:"-"`

    // NullFields is a list of field names (e.g. "Body") to include in API
    // requests with the JSON null value. By default, fields with empty
    // values are omitted from API requests. However, any field with an
    // empty value appearing in NullFields will be sent to the server as
    // null. It is an error if a field in this list has a non-empty value.
    // This may be used to include null fields in Patch requests.
    NullFields []string `json:"-"`
}

AndroidNotification: Notification to send to android devices.

func (*AndroidNotification) MarshalJSON Uses

func (s *AndroidNotification) MarshalJSON() ([]byte, error)

type ApnsConfig Uses

type ApnsConfig struct {
    // FcmOptions: Options for features provided by the FCM SDK for iOS.
    FcmOptions *ApnsFcmOptions `json:"fcmOptions,omitempty"`

    // Headers: HTTP request headers defined in Apple Push Notification
    // Service. Refer to
    // [APNs request headers](https://goo.gl/C6Yhia) for
    // supported headers, e.g. "apns-priority": "10".
    Headers map[string]string `json:"headers,omitempty"`

    // Payload: APNs payload as a JSON object, including both `aps`
    // dictionary and custom
    // payload. See [Payload Key Reference](https://goo.gl/32Pl5W).
    // If present, it overrides
    // google.firebase.fcm.v1.Notification.title
    // and google.firebase.fcm.v1.Notification.body.
    Payload googleapi.RawMessage `json:"payload,omitempty"`

    // ForceSendFields is a list of field names (e.g. "FcmOptions") to
    // unconditionally include in API requests. By default, fields with
    // empty values are omitted from API requests. However, any non-pointer,
    // non-interface field appearing in ForceSendFields will be sent to the
    // server regardless of whether the field is empty or not. This may be
    // used to include empty fields in Patch requests.
    ForceSendFields []string `json:"-"`

    // NullFields is a list of field names (e.g. "FcmOptions") to include in
    // API requests with the JSON null value. By default, fields with empty
    // values are omitted from API requests. However, any field with an
    // empty value appearing in NullFields will be sent to the server as
    // null. It is an error if a field in this list has a non-empty value.
    // This may be used to include null fields in Patch requests.
    NullFields []string `json:"-"`
}

ApnsConfig: [Apple Push Notification Service](https://goo.gl/MXRTPa) specific options.

func (*ApnsConfig) MarshalJSON Uses

func (s *ApnsConfig) MarshalJSON() ([]byte, error)

type ApnsFcmOptions Uses

type ApnsFcmOptions struct {
    // AnalyticsLabel: Label associated with the message's analytics data.
    AnalyticsLabel string `json:"analyticsLabel,omitempty"`

    // Image: Contains the URL of an image that is going to be displayed in
    // a
    // notification. If present, it will
    // override
    // google.firebase.fcm.v1.Notification.image.
    Image string `json:"image,omitempty"`

    // ForceSendFields is a list of field names (e.g. "AnalyticsLabel") to
    // unconditionally include in API requests. By default, fields with
    // empty values are omitted from API requests. However, any non-pointer,
    // non-interface field appearing in ForceSendFields will be sent to the
    // server regardless of whether the field is empty or not. This may be
    // used to include empty fields in Patch requests.
    ForceSendFields []string `json:"-"`

    // NullFields is a list of field names (e.g. "AnalyticsLabel") to
    // include in API requests with the JSON null value. By default, fields
    // with empty values are omitted from API requests. However, any field
    // with an empty value appearing in NullFields will be sent to the
    // server as null. It is an error if a field in this list has a
    // non-empty value. This may be used to include null fields in Patch
    // requests.
    NullFields []string `json:"-"`
}

ApnsFcmOptions: Options for features provided by the FCM SDK for iOS.

func (*ApnsFcmOptions) MarshalJSON Uses

func (s *ApnsFcmOptions) MarshalJSON() ([]byte, error)

type Color Uses

type Color struct {
    // Alpha: The fraction of this color that should be applied to the
    // pixel. That is,
    // the final pixel color is defined by the equation:
    //
    //   pixel color = alpha * (this color) + (1.0 - alpha) * (background
    // color)
    //
    // This means that a value of 1.0 corresponds to a solid color,
    // whereas
    // a value of 0.0 corresponds to a completely transparent color.
    // This
    // uses a wrapper message rather than a simple float scalar so that it
    // is
    // possible to distinguish between a default value and the value being
    // unset.
    // If omitted, this color object is to be rendered as a solid color
    // (as if the alpha value had been explicitly given with a value of
    // 1.0).
    Alpha float64 `json:"alpha,omitempty"`

    // Blue: The amount of blue in the color as a value in the interval [0,
    // 1].
    Blue float64 `json:"blue,omitempty"`

    // Green: The amount of green in the color as a value in the interval
    // [0, 1].
    Green float64 `json:"green,omitempty"`

    // Red: The amount of red in the color as a value in the interval [0,
    // 1].
    Red float64 `json:"red,omitempty"`

    // ForceSendFields is a list of field names (e.g. "Alpha") to
    // unconditionally include in API requests. By default, fields with
    // empty values are omitted from API requests. However, any non-pointer,
    // non-interface field appearing in ForceSendFields will be sent to the
    // server regardless of whether the field is empty or not. This may be
    // used to include empty fields in Patch requests.
    ForceSendFields []string `json:"-"`

    // NullFields is a list of field names (e.g. "Alpha") to include in API
    // requests with the JSON null value. By default, fields with empty
    // values are omitted from API requests. However, any field with an
    // empty value appearing in NullFields will be sent to the server as
    // null. It is an error if a field in this list has a non-empty value.
    // This may be used to include null fields in Patch requests.
    NullFields []string `json:"-"`
}

Color: Represents a color in the RGBA color space. This representation is designed for simplicity of conversion to/from color representations in various languages over compactness; for example, the fields of this representation can be trivially provided to the constructor of "java.awt.Color" in Java; it can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha" method in iOS; and, with just a little work, it can be easily formatted into a CSS "rgba()" string in JavaScript, as well.

Note: this proto does not carry information about the absolute color space that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB, DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color space.

Example (Java):

import com.google.type.Color;

// ...
public static java.awt.Color fromProto(Color protocolor) {
  float alpha = protocolor.hasAlpha()
      ? protocolor.getAlpha().getValue()
      : 1.0;

  return new java.awt.Color(
      protocolor.getRed(),
      protocolor.getGreen(),
      protocolor.getBlue(),
      alpha);
}

public static Color toProto(java.awt.Color color) {
  float red = (float) color.getRed();
  float green = (float) color.getGreen();
  float blue = (float) color.getBlue();
  float denominator = 255.0;
  Color.Builder resultBuilder =
      Color
          .newBuilder()
          .setRed(red / denominator)
          .setGreen(green / denominator)
          .setBlue(blue / denominator);
  int alpha = color.getAlpha();
  if (alpha != 255) {
    result.setAlpha(
        FloatValue
            .newBuilder()
            .setValue(((float) alpha) / denominator)
            .build());
  }
  return resultBuilder.build();
}
// ...

Example (iOS / Obj-C):

// ...
static UIColor* fromProto(Color* protocolor) {
   float red = [protocolor red];
   float green = [protocolor green];
   float blue = [protocolor blue];
   FloatValue* alpha_wrapper = [protocolor alpha];
   float alpha = 1.0;
   if (alpha_wrapper != nil) {
     alpha = [alpha_wrapper value];
   }
   return [UIColor colorWithRed:red green:green blue:blue

alpha:alpha];

}

static Color* toProto(UIColor* color) {
    CGFloat red, green, blue, alpha;
    if (![color getRed:&red green:&green blue:&blue

alpha:&alpha]) {

          return nil;
        }
        Color* result = [[Color alloc] init];
        [result setRed:red];
        [result setGreen:green];
        [result setBlue:blue];
        if (alpha <= 0.9999) {
          [result setAlpha:floatWrapperWithValue(alpha)];
        }
        [result autorelease];
        return result;
   }
   // ...

Example (JavaScript):

   // ...

   var protoToCssColor = function(rgb_color) {
      var redFrac = rgb_color.red || 0.0;
      var greenFrac = rgb_color.green || 0.0;
      var blueFrac = rgb_color.blue || 0.0;
      var red = Math.floor(redFrac * 255);
      var green = Math.floor(greenFrac * 255);
      var blue = Math.floor(blueFrac * 255);

      if (!('alpha' in rgb_color)) {
         return rgbToCssColor_(red, green, blue);
      }

      var alphaFrac = rgb_color.alpha.value || 0.0;
      var rgbParams = [red, green, blue].join(',');
      return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
   };

   var rgbToCssColor_ = function(red, green, blue) {
     var rgbNumber = new Number((red << 16) | (green << 8) | blue);
     var hexString = rgbNumber.toString(16);
     var missingZeros = 6 - hexString.length;
     var resultBuilder = ['#'];
     for (var i = 0; i < missingZeros; i++) {
        resultBuilder.push('0');
     }
     resultBuilder.push(hexString);
     return resultBuilder.join('');
   };

   // ...

func (*Color) MarshalJSON Uses

func (s *Color) MarshalJSON() ([]byte, error)

func (*Color) UnmarshalJSON Uses

func (s *Color) UnmarshalJSON(data []byte) error

type FcmOptions Uses

type FcmOptions struct {
    // AnalyticsLabel: Label associated with the message's analytics data.
    AnalyticsLabel string `json:"analyticsLabel,omitempty"`

    // ForceSendFields is a list of field names (e.g. "AnalyticsLabel") to
    // unconditionally include in API requests. By default, fields with
    // empty values are omitted from API requests. However, any non-pointer,
    // non-interface field appearing in ForceSendFields will be sent to the
    // server regardless of whether the field is empty or not. This may be
    // used to include empty fields in Patch requests.
    ForceSendFields []string `json:"-"`

    // NullFields is a list of field names (e.g. "AnalyticsLabel") to
    // include in API requests with the JSON null value. By default, fields
    // with empty values are omitted from API requests. However, any field
    // with an empty value appearing in NullFields will be sent to the
    // server as null. It is an error if a field in this list has a
    // non-empty value. This may be used to include null fields in Patch
    // requests.
    NullFields []string `json:"-"`
}

FcmOptions: Platform independent options for features provided by the FCM SDKs.

func (*FcmOptions) MarshalJSON Uses

func (s *FcmOptions) MarshalJSON() ([]byte, error)

type LightSettings Uses

type LightSettings struct {
    // Color: Required. Set `color` of the LED
    // with
    // [google.type.Color](https://github.com/googleapis/googleapis/blob
    // /master/google/type/color.proto).
    Color *Color `json:"color,omitempty"`

    // LightOffDuration: Required. Along with `light_on_duration `, define
    // the blink rate of LED
    // flashes. Resolution defined
    // by
    // [proto.Duration](https://developers.google.com/protocol-buffers/doc
    // s/reference/google.protobuf#google.protobuf.Duration)
    LightOffDuration string `json:"lightOffDuration,omitempty"`

    // LightOnDuration: Required. Along with `light_off_duration`, define
    // the blink rate of LED
    // flashes. Resolution defined
    // by
    // [proto.Duration](https://developers.google.com/protocol-buffers/doc
    // s/reference/google.protobuf#google.protobuf.Duration)
    LightOnDuration string `json:"lightOnDuration,omitempty"`

    // ForceSendFields is a list of field names (e.g. "Color") to
    // unconditionally include in API requests. By default, fields with
    // empty values are omitted from API requests. However, any non-pointer,
    // non-interface field appearing in ForceSendFields will be sent to the
    // server regardless of whether the field is empty or not. This may be
    // used to include empty fields in Patch requests.
    ForceSendFields []string `json:"-"`

    // NullFields is a list of field names (e.g. "Color") to include in API
    // requests with the JSON null value. By default, fields with empty
    // values are omitted from API requests. However, any field with an
    // empty value appearing in NullFields will be sent to the server as
    // null. It is an error if a field in this list has a non-empty value.
    // This may be used to include null fields in Patch requests.
    NullFields []string `json:"-"`
}

LightSettings: Settings to control notification LED.

func (*LightSettings) MarshalJSON Uses

func (s *LightSettings) MarshalJSON() ([]byte, error)

type Message Uses

type Message struct {
    // Android: Input only. Android specific options for messages sent
    // through
    // [FCM connection server](https://goo.gl/4GLdUl).
    Android *AndroidConfig `json:"android,omitempty"`

    // Apns: Input only. [Apple Push Notification
    // Service](https://goo.gl/MXRTPa)
    // specific options.
    Apns *ApnsConfig `json:"apns,omitempty"`

    // Condition: Condition to send a message to,
    // e.g. "'foo' in topics && 'bar' in topics".
    Condition string `json:"condition,omitempty"`

    // Data: Input only. Arbitrary key/value payload.
    Data map[string]string `json:"data,omitempty"`

    // FcmOptions: Input only. Template for FCM SDK feature options to use
    // across all
    // platforms.
    FcmOptions *FcmOptions `json:"fcmOptions,omitempty"`

    // Name: Output Only. The identifier of the message sent, in the format
    // of
    // `projects/*/messages/{message_id}`.
    Name string `json:"name,omitempty"`

    // Notification: Input only. Basic notification template to use across
    // all platforms.
    Notification *Notification `json:"notification,omitempty"`

    // Token: Registration token to send a message to.
    Token string `json:"token,omitempty"`

    // Topic: Topic name to send a message to, e.g. "weather".
    // Note: "/topics/" prefix should not be provided.
    Topic string `json:"topic,omitempty"`

    // Webpush: Input only. [Webpush
    // protocol](https://tools.ietf.org/html/rfc8030)
    // options.
    Webpush *WebpushConfig `json:"webpush,omitempty"`

    // ServerResponse contains the HTTP response code and headers from the
    // server.
    googleapi.ServerResponse `json:"-"`

    // ForceSendFields is a list of field names (e.g. "Android") to
    // unconditionally include in API requests. By default, fields with
    // empty values are omitted from API requests. However, any non-pointer,
    // non-interface field appearing in ForceSendFields will be sent to the
    // server regardless of whether the field is empty or not. This may be
    // used to include empty fields in Patch requests.
    ForceSendFields []string `json:"-"`

    // NullFields is a list of field names (e.g. "Android") to include in
    // API requests with the JSON null value. By default, fields with empty
    // values are omitted from API requests. However, any field with an
    // empty value appearing in NullFields will be sent to the server as
    // null. It is an error if a field in this list has a non-empty value.
    // This may be used to include null fields in Patch requests.
    NullFields []string `json:"-"`
}

Message: Message to send by Firebase Cloud Messaging Service.

func (*Message) MarshalJSON Uses

func (s *Message) MarshalJSON() ([]byte, error)

type Notification Uses

type Notification struct {
    // Body: The notification's body text.
    Body string `json:"body,omitempty"`

    // Image: Contains the URL of an image that is going to be downloaded on
    // the device
    // and displayed in a notification.
    // JPEG, PNG, BMP have full support across platforms. Animated GIF and
    // video
    // only work on iOS. WebP and HEIF have varying levels of support
    // across
    // platforms and platform versions.
    // Android has 1MB image size limit.
    // Quota usage and implications/costs for hosting image on Firebase
    // Storage:
    // https://firebase.google.com/pricing
    Image string `json:"image,omitempty"`

    // Title: The notification's title.
    Title string `json:"title,omitempty"`

    // ForceSendFields is a list of field names (e.g. "Body") to
    // unconditionally include in API requests. By default, fields with
    // empty values are omitted from API requests. However, any non-pointer,
    // non-interface field appearing in ForceSendFields will be sent to the
    // server regardless of whether the field is empty or not. This may be
    // used to include empty fields in Patch requests.
    ForceSendFields []string `json:"-"`

    // NullFields is a list of field names (e.g. "Body") to include in API
    // requests with the JSON null value. By default, fields with empty
    // values are omitted from API requests. However, any field with an
    // empty value appearing in NullFields will be sent to the server as
    // null. It is an error if a field in this list has a non-empty value.
    // This may be used to include null fields in Patch requests.
    NullFields []string `json:"-"`
}

Notification: Basic notification template to use across all platforms.

func (*Notification) MarshalJSON Uses

func (s *Notification) MarshalJSON() ([]byte, error)

type ProjectsMessagesSendCall Uses

type ProjectsMessagesSendCall struct {
    // contains filtered or unexported fields
}

func (*ProjectsMessagesSendCall) Context Uses

func (c *ProjectsMessagesSendCall) Context(ctx context.Context) *ProjectsMessagesSendCall

Context sets the context to be used in this call's Do method. Any pending HTTP request will be aborted if the provided context is canceled.

func (*ProjectsMessagesSendCall) Do Uses

func (c *ProjectsMessagesSendCall) Do(opts ...googleapi.CallOption) (*Message, error)

Do executes the "fcm.projects.messages.send" call. Exactly one of *Message or error will be non-nil. Any non-2xx status code is an error. Response headers are in either *Message.ServerResponse.Header or (if a response was returned at all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check whether the returned error was because http.StatusNotModified was returned.

func (*ProjectsMessagesSendCall) Fields Uses

func (c *ProjectsMessagesSendCall) Fields(s ...googleapi.Field) *ProjectsMessagesSendCall

Fields allows partial responses to be retrieved. See https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more information.

func (*ProjectsMessagesSendCall) Header Uses

func (c *ProjectsMessagesSendCall) Header() http.Header

Header returns an http.Header that can be modified by the caller to add HTTP headers to the request.

type ProjectsMessagesService Uses

type ProjectsMessagesService struct {
    // contains filtered or unexported fields
}

func NewProjectsMessagesService Uses

func NewProjectsMessagesService(s *Service) *ProjectsMessagesService

func (*ProjectsMessagesService) Send Uses

func (r *ProjectsMessagesService) Send(parentid string, sendmessagerequest *SendMessageRequest) *ProjectsMessagesSendCall

Send: Send a message to specified target (a registration token, topic or condition).

type ProjectsService Uses

type ProjectsService struct {
    Messages *ProjectsMessagesService
    // contains filtered or unexported fields
}

func NewProjectsService Uses

func NewProjectsService(s *Service) *ProjectsService

type SendMessageRequest Uses

type SendMessageRequest struct {
    // Message: Required. Message to send.
    Message *Message `json:"message,omitempty"`

    // ValidateOnly: Flag for testing the request without actually
    // delivering the message.
    ValidateOnly bool `json:"validateOnly,omitempty"`

    // ForceSendFields is a list of field names (e.g. "Message") to
    // unconditionally include in API requests. By default, fields with
    // empty values are omitted from API requests. However, any non-pointer,
    // non-interface field appearing in ForceSendFields will be sent to the
    // server regardless of whether the field is empty or not. This may be
    // used to include empty fields in Patch requests.
    ForceSendFields []string `json:"-"`

    // NullFields is a list of field names (e.g. "Message") to include in
    // API requests with the JSON null value. By default, fields with empty
    // values are omitted from API requests. However, any field with an
    // empty value appearing in NullFields will be sent to the server as
    // null. It is an error if a field in this list has a non-empty value.
    // This may be used to include null fields in Patch requests.
    NullFields []string `json:"-"`
}

SendMessageRequest: Request to send a message to specified target.

func (*SendMessageRequest) MarshalJSON Uses

func (s *SendMessageRequest) MarshalJSON() ([]byte, error)

type Service Uses

type Service struct {
    BasePath  string // API endpoint base URL
    UserAgent string // optional additional User-Agent fragment

    Projects *ProjectsService
    // contains filtered or unexported fields
}

func New Uses

func New(client *http.Client) (*Service, error)

New creates a new Service. It uses the provided http.Client for requests.

Deprecated: please use NewService instead. To provide a custom HTTP client, use option.WithHTTPClient. If you are using google.golang.org/api/googleapis/transport.APIKey, use option.WithAPIKey with NewService instead.

func NewService Uses

func NewService(ctx context.Context, opts ...option.ClientOption) (*Service, error)

NewService creates a new Service.

type WebpushConfig Uses

type WebpushConfig struct {
    // Data: Arbitrary key/value payload. If present, it will
    // override
    // google.firebase.fcm.v1.Message.data.
    Data map[string]string `json:"data,omitempty"`

    // FcmOptions: Options for features provided by the FCM SDK for Web.
    FcmOptions *WebpushFcmOptions `json:"fcmOptions,omitempty"`

    // Headers: HTTP headers defined in webpush protocol. Refer to
    // [Webpush protocol](https://tools.ietf.org/html/rfc8030#section-5)
    // for
    // supported headers, e.g. "TTL": "15".
    Headers map[string]string `json:"headers,omitempty"`

    // Notification: Web Notification options as a JSON object. Supports
    // Notification instance
    // properties as defined in [Web
    // Notification
    // API](https://developer.mozilla.org/en-US/docs/Web/API/Not
    // ification). If
    // present, "title" and "body" fields
    // override
    // [google.firebase.fcm.v1.Notification.title]
    // and
    // [google.firebase.fcm.v1.Notification.body].
    Notification googleapi.RawMessage `json:"notification,omitempty"`

    // ForceSendFields is a list of field names (e.g. "Data") to
    // unconditionally include in API requests. By default, fields with
    // empty values are omitted from API requests. However, any non-pointer,
    // non-interface field appearing in ForceSendFields will be sent to the
    // server regardless of whether the field is empty or not. This may be
    // used to include empty fields in Patch requests.
    ForceSendFields []string `json:"-"`

    // NullFields is a list of field names (e.g. "Data") to include in API
    // requests with the JSON null value. By default, fields with empty
    // values are omitted from API requests. However, any field with an
    // empty value appearing in NullFields will be sent to the server as
    // null. It is an error if a field in this list has a non-empty value.
    // This may be used to include null fields in Patch requests.
    NullFields []string `json:"-"`
}

WebpushConfig: [Webpush protocol](https://tools.ietf.org/html/rfc8030) options.

func (*WebpushConfig) MarshalJSON Uses

func (s *WebpushConfig) MarshalJSON() ([]byte, error)

type WebpushFcmOptions Uses

type WebpushFcmOptions struct {
    // Link: The link to open when the user clicks on the notification.
    // For all URL values, HTTPS is required.
    Link string `json:"link,omitempty"`

    // ForceSendFields is a list of field names (e.g. "Link") to
    // unconditionally include in API requests. By default, fields with
    // empty values are omitted from API requests. However, any non-pointer,
    // non-interface field appearing in ForceSendFields will be sent to the
    // server regardless of whether the field is empty or not. This may be
    // used to include empty fields in Patch requests.
    ForceSendFields []string `json:"-"`

    // NullFields is a list of field names (e.g. "Link") to include in API
    // requests with the JSON null value. By default, fields with empty
    // values are omitted from API requests. However, any field with an
    // empty value appearing in NullFields will be sent to the server as
    // null. It is an error if a field in this list has a non-empty value.
    // This may be used to include null fields in Patch requests.
    NullFields []string `json:"-"`
}

WebpushFcmOptions: Options for features provided by the FCM SDK for Web.

func (*WebpushFcmOptions) MarshalJSON Uses

func (s *WebpushFcmOptions) MarshalJSON() ([]byte, error)

Package fcm imports 14 packages (graph). Updated 2019-09-15. Refresh now. Tools for package owners.