Есть ли способ вставить эмодзи в скрипт Google Apps? - PullRequest
0 голосов
/ 04 июня 2018

У меня есть ГАЗ, который отправляет автоматические электронные письма и хотел бы включить пару смайликов.Я пытался использовать короткие коды и копировать / вставлять, но пока ничего не работает.Просто хотел посмотреть, было ли что-то, чего мне не хватало.

Спасибо!

Редактировать: Вот код:

var title = rowData.publicationTitle;
var journal = rowData.journalTitle;
var url = rowData.publicationUrl;

//Emoji goes here in the body:
var body = "Hi " + firstName + "!<br><br>I noticed your article <a href='" + url + "'>&ldquo;" + title + "&rdquo;</a> was recently published in <i>" + journal + "</i>. Congratulations! This is just a friendly reminder to please upload your original document and a PDF version to our publications app when you have time.<br><br>To upload your publication, you can <a href='http://support.cpes.vt.edu/publishing'>click here</a>.<br><br>Thanks!<br><br>? CB<br><br><hr style='background-color: #d8d8d8; border: 0 none; color: #d8d8d8; height: 1px;'><span style='font-size:12px'><b>CPES Publications Reminders</b>&nbsp;&nbsp;|&nbsp;&nbsp;<a href='mailto:leshutt@vt.edu' style='text-decoration:none'>Feedback</a>&nbsp;&nbsp;|&nbsp;&nbsp;<a href='http://support.cpes.vt.edu/publishing' style='text-decoration:none;'>Publication uploads</a></span>";

var emailSubject = "Just a reminder to upload your article!";

var me = Session.getActiveUser().getEmail();
var aliases = GmailApp.getAliases();

if (emailStatus == "Pending" && emailData !== "No emails found"){
  GmailApp.sendEmail(email, emailSubject, body, {
    from: aliases[2],
    name: "CPES Bot",
    htmlBody: body
  });
}

Редактировать 2: Я заметил, что отправка звезды ("⭐") работает, но нормальносмайлик ("?") отображается как черно-белая иконка в стиле Юникод, а все остальное, что я пробовал, - это вопросительные знаки.Можно ли использовать смайлики только до определенного выпуска Unicode?

Ответы [ 2 ]

0 голосов
/ 16 июня 2018

Вы хотите отправить электронное письмо с текстом HTML, включая смайлики.Если мое понимание правильное, как насчет этой модификации?

О GmailApp и MailApp:

  • К сожалению, GmailApp не может использовать последние символы эмодзи.При GmailApp

    • смайлики ниже Unicode 5.2 могут использоваться для этой ситуации.
    • смайлики больше Unicode 6.0 НЕ могут использоваться для этой ситуации.
  • MailApp может использовать все версии эмодзи.

"⭐" - это Unicode 5.1.Но «?» - это Unicode 6.0.Таким образом, в вашем скрипте, использующем GmailApp, вы можете видеть первое, но вы не можете видеть второе.В примере сценария Микеле Пизани последний отправляется с использованием MailApp.Так что персонаж не сломлен.«?» - это Unicode 8.0.

Точки модификации:

Так что в случае вашего скрипта точки модификации следующие:

  • Использование MailAppвместо GmailApp.

ИЛИ

  • Используйте Gmail API.
    • Из ваших комментариев к Микеле Пизани я беспокоюсь о том, что MailApp может не сработать в вашей ситуации.Поэтому я хотел бы также предложить метод с использованием Gmail API.

1.Изменен ваш скрипт

Пожалуйста, измените его следующим образом.

С:
GmailApp.sendEmail(email, emailSubject, body, {
Кому:
MailApp.sendEmail(email, emailSubject, body, {

2.Использование Gmail API

Чтобы использовать это, включите Gmail API в Advanced Services и консоли API следующим образом.

Включите Gmail API v1 в Advanced Google Services

  • В редакторе сценариев
    • Ресурсы -> Расширенные службы Google
    • Включить Gmail API v1

Включить Gmail API вКонсоль API

  • В редакторе сценариев
    • Ресурсы -> Проект Cloud Platform
    • Просмотр консоли API
    • В начале работы нажмите ВключитьAPI и получить учетные данные, такие как ключи.
    • С левой стороны нажмите Библиотека.
    • В поле Поиск API и служб введите "Gmail".И нажмите Gmail API.
    • Нажмите кнопку Включить.
    • Если API уже включен, не выключайте его.

Если сейчас вы открываете редактор сценариев со сценарием для использования Gmail API, вы можете включить Gmail API для проекта, открыв этот URL-адрес https://console.cloud.google.com/apis/api/gmail.googleapis.com/overview

Пример сценария:

function convert(email, aliase, emailSubject, body) {
  body = Utilities.base64Encode(body, Utilities.Charset.UTF_8);
  var boundary = "boundaryboundary";
  var mailData = [
    "MIME-Version: 1.0",
    "To: " + email,
    "From: CPES Bot <" + aliase + ">",
    "Subject: " + emailSubject,
    "Content-Type: multipart/alternative; boundary=" + boundary,
    "",
    "--" + boundary,
    "Content-Type: text/plain; charset=UTF-8",
    "",
    body,
    "",
    "--" + boundary,
    "Content-Type: text/html; charset=UTF-8",
    "Content-Transfer-Encoding: base64",
    "",
    body,
    "",
    "--" + boundary,
  ].join("\r\n");
  return Utilities.base64EncodeWebSafe(mailData);
}

function myFunction() {

  // Please declare email and firstName.

  var title = rowData.publicationTitle;
  var journal = rowData.journalTitle;
  var url = rowData.publicationUrl;
  //Emoji goes here in the body:
  var body = "Hi " + firstName + "!<br><br>I noticed your article <a href='" + url + "'>&ldquo;" + title + "&rdquo;</a> was recently published in <i>" + journal + "</i>. Congratulations! This is just a friendly reminder to please upload your original document and a PDF version to our publications app when you have time.<br><br>To upload your publication, you can <a href='http://support.cpes.vt.edu/publishing'>click here</a>.<br><br>Thanks!<br><br>? CB<br><br><hr style='background-color: #d8d8d8; border: 0 none; color: #d8d8d8; height: 1px;'><span style='font-size:12px'><b>CPES Publications Reminders</b>&nbsp;&nbsp;|&nbsp;&nbsp;<a href='mailto:leshutt@vt.edu' style='text-decoration:none'>Feedback</a>&nbsp;&nbsp;|&nbsp;&nbsp;<a href='http://support.cpes.vt.edu/publishing' style='text-decoration:none;'>Publication uploads</a></span>";
  var emailSubject = "Just a reminder to upload your article!";
  var me = Session.getActiveUser().getEmail();
  var aliases = GmailApp.getAliases();
  if (emailStatus == "Pending" && emailData !== "No emails found"){
    // Added script
    var raw = convert(email, aliases[2], emailSubject, body);
    Gmail.Users.Messages.send({raw: raw}, "me");
  }
}
Примечание:
  • Когда вы используете этот образец, укажите email и firstName.
  • Пожалуйста, запустите myFunction().

Ссылки:

Если я неправильно понимаюваш вопрос, извините.

0 голосов
/ 05 июня 2018

Я попытался скопировать эмодзи (https://www.emojicopy.com/) и вставить его непосредственно в редактор скриптов:

enter image description here

и после отправкиписьмо, которое я получил в своем почтовом ящике:

enter image description here

Редактировать:

Будьте осторожны, чтобы некоторые эмодзи имели длину одного символа (например, звезду)) но другие - это 2 символа (например, улыбка), для тех, у кого 2 символа, вы можете написать сразу после улыбки, но вместо этого вы пишете внутри улыбки, поэтому разбиваете ее, что превращается в знак вопроса.

Есливы попытаетесь запустить этот код, вы увидите, что первый имеет длину 2, а второй имеет длину 1:

enter image description here

Если вы попытаетесь переместитьуказатель (в редакторе сценариев приложений) на эти 2 смайлика, от до и после смайлика, вы увидите, что в случае со звездой всего один шаг, но для улыбки вам нужно 2 шага.

...