Guide for developing apps for Gmail

Develop locally using clasp

Widgets

Signing in into POWr using Oauth2

const readline = require("readline");
const fs = require("fs");
const rl = readline.createInterface({
  input: process.stdin,
  output: process.stdout
});

const template = {
  timeZone: "Pacific/Pago_Pago",
  dependencies: {},
  oauthScopes: [
    "https://www.googleapis.com/auth/gmail.addons.current.message.metadata",
    "https://www.googleapis.com/auth/gmail.addons.current.action.compose",
    "https://www.googleapis.com/auth/gmail.addons.execute",
    "https://www.googleapis.com/auth/script.external_request"
  ],
  urlFetchWhitelist: ["https://www.powr.io/"],
  gmail: {
    name: "POWr for Gmail 🌟✉️🌟",
    logoUrl:
      "https://s3-us-west-1.amazonaws.com/powr/powr_logos/POWr-Badge-500x500.png",
    primaryColor: "#5287DF",
    secondaryColor: "#5287DF",
    openLinkUrlPrefixes: ["https://www.powr.io/"],
    composeTrigger: {
      selectActions: [
        {
          text: "Add POWr Plugin",
          runFunction: "run"
        }
      ],
      draftAccess: "METADATA"
    }
  }
};

rl.question(
  "Please enter your ngrock url (for example 'https://d6a799de.ngrok.io') => ",
  nkrockUrl => {
    const data = `var baseUrl = "${nkrockUrl}";`;
    fs.writeFileSync("baseUrl.js", data);
    template.urlFetchWhitelist.push(nkrockUrl + "/");
    template.gmail.openLinkUrlPrefixes.push(nkrockUrl + "/");
    fs.writeFileSync("appsscript.json", JSON.stringify(template, null, 2));
    rl.close();
  }
);

Developing apps for Gmail

By Sergey Tyan

Developing apps for Gmail

  • 6