Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
22 commits
Select commit Hold shift + click to select a range
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
160 changes: 91 additions & 69 deletions advanced/gmail.gs
Original file line number Diff line number Diff line change
Expand Up @@ -13,101 +13,123 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
// [START apps_script_gmail_label]
// [START gmail_label]
/**
* Lists the user's labels, including name, type,
* ID and visibility information.
*/
function listLabelInfo() {
var response =
Gmail.Users.Labels.list('me');
for (var i = 0; i < response.labels.length; i++) {
var label = response.labels[i];
Logger.log(JSON.stringify(label));

function listLabelInfo(){
try{
const response =
Gmail.Users.Labels.list('me');
for (let i = 0; i < response.labels.length; i++) {
const label = response.labels[i];
Logger.log(JSON.stringify(label));
}
}
catch(err){
Logger.log(err)
}
}
// [END apps_script_gmail_label]
// [END gmail_label]

// [START apps_script_gmail_inbox_snippets]
// [START gmail_inbox_snippets]
/**
* Lists, for each thread in the user's Inbox, a
* snippet associated with that thread.
*/
function listInboxSnippets() {
var pageToken;
do {
var threadList = Gmail.Users.Threads.list('me', {
q: 'label:inbox',
pageToken: pageToken
});
if (threadList.threads && threadList.threads.length > 0) {
threadList.threads.forEach(function(thread) {
Logger.log('Snippet: %s', thread.snippet);

try{
let pageToken;
do {
const threadList = Gmail.Users.Threads.list('me', {
q: 'label:inbox',
pageToken: pageToken
});
}
pageToken = threadList.nextPageToken;
} while (pageToken);
if (threadList.threads && threadList.threads.length > 0) {
threadList.threads.forEach(function(thread) {
Logger.log('Snippet: %s', thread.snippet);
});
}
pageToken = threadList.nextPageToken;
} while (pageToken);
}
catch(err){
Logger.log(err)
}
}
// [END apps_script_gmail_inbox_snippets]
// [END gmail_inbox_snippets]


// [START apps_script_gmail_history]
// [START gmail_history]
/**
* Gets a history record ID associated with the most
* recently sent message, then logs all the message IDs
* that have changed since that message was sent.
*/
function logRecentHistory() {
// Get the history ID associated with the most recent
// sent message.
var sent = Gmail.Users.Threads.list('me', {
q: 'label:sent',
maxResults: 1
});
if (!sent.threads || !sent.threads[0]) {
Logger.log('No sent threads found.');
return;
}
var historyId = sent.threads[0].historyId;

// Log the ID of each message changed since the most
// recent message was sent.
var pageToken;
var changed = [];
do {
var recordList = Gmail.Users.History.list('me', {
startHistoryId: historyId,
pageToken: pageToken
function logRecentHistory () {
try{
// Get the history ID associated with the most recent
// sent message.
const sent = Gmail.Users.Threads.list('me', {
q: 'label:sent',
maxResults: 1
});
var history = recordList.history;
if (history && history.length > 0) {
history.forEach(function(record) {
record.messages.forEach(function(message) {
if (changed.indexOf(message.id) === -1) {
changed.push(message.id);
}
});
});
if (!sent.threads || !sent.threads[0]) {
Logger.log('No sent threads found.');
return;
}
pageToken = recordList.nextPageToken;
} while (pageToken);
const historyId = sent.threads[0].historyId;

changed.forEach(function(id) {
Logger.log('Message Changed: %s', id);
});
// Log the ID of each message changed since the most
// recent message was sent.
let pageToken;
let changed = [];
do {
const recordList = Gmail.Users.History.list('me', {
startHistoryId: historyId,
pageToken: pageToken
});
const history = recordList.history;
if (history && history.length > 0) {
history.forEach(function(record) {
record.messages.forEach(function(message) {
if (changed.indexOf(message.id) === -1) {
changed.push(message.id);
}
});
});
}
pageToken = recordList.nextPageToken;
} while (pageToken);

changed.forEach(function(id) {
Logger.log('Message Changed: %s', id);
});
}
catch(err){
Logger.log(err)
}
}
// [END apps_script_gmail_history]
// [END gmail_history]

// [START apps_script_gmail_raw]
// [START gmail_raw]
function getRawMessage() {
var messageId = Gmail.Users.Messages.list('me').messages[0].id;
console.log(messageId);
var message = Gmail.Users.Messages.get('me', messageId, {
'format': 'raw'
});
try{
const messageId = Gmail.Users.Messages.list('me').messages[0].id;
console.log(messageId);
const message = Gmail.Users.Messages.get('me', messageId, {
'format': 'raw'
});

// Get raw content as base64url encoded string.
var encodedMessage = Utilities.base64Encode(message.raw);
console.log(encodedMessage);
// Get raw content as base64url encoded string.
const encodedMessage = Utilities.base64Encode(message.raw);
console.log(encodedMessage);
}
catch(err){
Logger.log(err)
}
}
// [END apps_script_gmail_raw]
// [END gmail_raw]
22 changes: 14 additions & 8 deletions drive/quickstart/quickstart.gs
Original file line number Diff line number Diff line change
Expand Up @@ -17,14 +17,20 @@
/**
* Lists the names and IDs of up to 10 files.
*/
function listFiles() {
var files = Drive.Files.list({
fields: 'nextPageToken, items(id, title)',
maxResults: 10
}).items;
for (var i = 0; i < files.length; i++) {
var file = files[i];
Logger.log('%s (%s)', file.title, file.id);
function listFiles () {
try{
const files = Drive.Files.list({
fields: 'nextPageToken, items(id, title)',
maxResults: 10
}).items;
for (let i = 0; i < files.length; i++) {
const file = files[i];
Logger.log('%s (%s)', file.title, file.id);
}
}
catch(err){
//TODO(developer)-Handle Files.list() exception
Logger.log('failed with error %s',err.toString());
}
}
// [END drive_quickstart]
23 changes: 14 additions & 9 deletions gmail/markup/Code.gs
Original file line number Diff line number Diff line change
@@ -1,14 +1,19 @@
// [START apps_script_gmail_markup]
// [START gmail_send_email_with_markup]
/**
* Tests the schema.
* Send an email with schemas in order to test email markup.
*/
function testSchemas() {
var htmlBody = HtmlService.createHtmlOutputFromFile('mail_template').getContent();
try{
const htmlBody = HtmlService.createHtmlOutputFromFile('mail_template').getContent();

MailApp.sendEmail({
to: Session.getActiveUser().getEmail(),
subject: 'Test Email markup - ' + new Date(),
htmlBody: htmlBody,
});
MailApp.sendEmail({
to: Session.getActiveUser().getEmail(),
subject: 'Test Email markup - ' + new Date(),
htmlBody: htmlBody,
});
}
catch(err){
Logger.log(err)
}
}
// [END apps_script_gmail_markup]
// [END gmail_send_email_with_markup]
10 changes: 5 additions & 5 deletions gmail/markup/mail_template.html
Original file line number Diff line number Diff line change
Expand Up @@ -2,12 +2,12 @@
<head>
<script type="application/ld+json">
{
"@context": "http://schema.org",
"@type": "EmailMessage",
"description": "Check this out",
"@context": "https://schema.org",
"@type": "EmailMessage",
"description": "Check this out",
"potentialAction": {
"@type": "ViewAction",
"target": "https://www.youtube.com/watch?v=eH8KwfdkSqU"
"target": "https://www.youtube.com/watch?v=eH8KwfdkSqU"
}
}
</script>
Expand All @@ -17,4 +17,4 @@
This a test for a Go-To action in Gmail.
</p>
</body>
</html>
</html>
22 changes: 14 additions & 8 deletions gmail/quickstart/quickstart.gs
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
/**
* Copyright Google LLC
* Copyright Google LLC
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
Expand All @@ -15,18 +15,24 @@
*/
// [START gmail_quickstart]
/**
* Lists the labels in the user's account.
* Lists all labels in the user's mailbox
*/
function listLabels() {
var response = Gmail.Users.Labels.list('me');
if (response.labels.length == 0) {
Logger.log('No labels found.');
} else {
try{
const response = Gmail.Users.Labels.list('me');
if (response.labels.length == 0) {
Logger.log('No labels found.');
return;
}
Logger.log('Labels:');
for (var i = 0; i < response.labels.length; i++) {
var label = response.labels[i];
for (let i = 0; i < response.labels.length; i++) {
const label = response.labels[i];
Logger.log('- %s', label.name);
}
}
catch(err){
//TODO(developer)-Handle Labels.list() exceptions
Logger.log('failed with error %s',err.toString());
}
}
// [END gmail_quickstart]
Loading