Skip to content

Commit

Permalink
Add files via upload
Browse files Browse the repository at this point in the history
Hello DevRel friends,

Working with @gtondello, I'm uploading code samples for the upcoming Google Chat Advanced Service in Apps Script launch.  These code samples pair with the following bugs and documentation changelists.
  • Loading branch information
danielatgoogle authored Oct 26, 2023
1 parent e9d3dc9 commit 06aebd2
Showing 1 changed file with 121 additions and 0 deletions.
121 changes: 121 additions & 0 deletions advanced/chat.gs
Original file line number Diff line number Diff line change
@@ -0,0 +1,121 @@
/**
* 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.
* You may obtain a copy of the License at
*
* https://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/

// [START chat_post_message_with_user_credentials]
/**
* Posts a new message to the specified space on behalf of the user.
* @param {string} spaceName The resource name of the space.
*/
function postMessageWithUserCredentials(spaceName) {
try {
const message = { 'text': 'Hello world!' };

Check failure on line 24 in advanced/chat.gs

View workflow job for this annotation

GitHub Actions / lint

There should be no space after '{'

Check failure on line 24 in advanced/chat.gs

View workflow job for this annotation

GitHub Actions / lint

There should be no space before '}'
Chat.Spaces.Messages.create(message, spaceName);
} catch (err) {
// TODO (developer) - Handle exception
console.log('Failed to create message with error %s', err.message);
}
}
// [END chat_post_message_with_user_credentials]

// [START chat_post_message_with_app_credentials]
/**
* Posts a new message to the specified space on behalf of the app.
* @param {string} spaceName The resource name of the space.
*/
function postMessageWithAppCredentials(spaceName) {
try {
// See https://developers.google.com/chat/api/guides/auth/service-accounts
// for details on how to obtain a service account OAuth token.
const appToken = getToken_();
const message = { 'text': 'Hello world!' };

Check failure on line 43 in advanced/chat.gs

View workflow job for this annotation

GitHub Actions / lint

There should be no space after '{'

Check failure on line 43 in advanced/chat.gs

View workflow job for this annotation

GitHub Actions / lint

There should be no space before '}'
Chat.Spaces.Messages.create(
message,

Check failure on line 45 in advanced/chat.gs

View workflow job for this annotation

GitHub Actions / lint

Expected indentation of 8 spaces but found 6
spaceName,

Check failure on line 46 in advanced/chat.gs

View workflow job for this annotation

GitHub Actions / lint

Expected indentation of 8 spaces but found 6
{},

Check failure on line 47 in advanced/chat.gs

View workflow job for this annotation

GitHub Actions / lint

Expected indentation of 8 spaces but found 6
// Authenticate with the service account token.

Check failure on line 48 in advanced/chat.gs

View workflow job for this annotation

GitHub Actions / lint

Expected indentation of 8 spaces but found 6
{ 'Authorization': 'Bearer ' + appToken });

Check failure on line 49 in advanced/chat.gs

View workflow job for this annotation

GitHub Actions / lint

Expected indentation of 8 spaces but found 6

Check failure on line 49 in advanced/chat.gs

View workflow job for this annotation

GitHub Actions / lint

There should be no space after '{'
} catch (err) {
// TODO (developer) - Handle exception
console.log('Failed to create message with error %s', err.message);
}
}
// [END chat_post_message_with_app_credentials]

// [START chat_get_space]
/**
* Gets information about a Chat space.
* @param {string} spaceName The resource name of the space.
*/
function getSpace(spaceName) {
try {
const space = Chat.Spaces.get(spaceName);
console.log('Space display name: %s', space.displayName);
console.log('Space type: %s', space.spaceType);
} catch (err) {
// TODO (developer) - Handle exception
console.log('Failed to get space with error %s', err.message);
}
}
// [END chat_get_space]

// [START chat_create_space]
/**
* Creates a new Chat space.
*/
function createSpace() {
try {
const space = { 'displayName': 'New Space', 'spaceType': 'SPACE' };
Chat.Spaces.create(space);
} catch (err) {
// TODO (developer) - Handle exception
console.log('Failed to create space with error %s', err.message);
}
}
// [END chat_create_space]

// [START chat_list_memberships]
/**
* Lists all the members of a Chat space.
* @param {string} spaceName The resource name of the space.
*/
function listMemberships(spaceName) {
let response;
let pageToken = null;
do {
try {
response = Chat.Spaces.Members.list(spaceName, {
pageSize: 10,
pageToken: pageToken
});
if (!response.memberships || response.memberships.length === 0) {
console.log('No memberships found.');
return;
}
for (let i = 0; i < response.memberships.length; i++) {
const membership = response.memberships[i];
console.log(
'Member resource name: %s (type: %s)',
membership.name,
membership.member.type);
}
pageToken = response.nextPageToken;
} catch (err) {
// TODO (developer) - Handle exception
console.log('Failed with error %s', err.message);
}
} while (pageToken);
}
// [END chat_list_memberships]

0 comments on commit 06aebd2

Please sign in to comment.