Skip to content

Instantly share code, notes, and snippets.


Saurav Sarkar saurav28

View GitHub Profile
View Learnings on Google Content APIs
This document contains my learnings on Google Content APIs.
By Content APIs i mean the combined set of APIs including Drive, Docs , Sheets and Slides.
Design Concepts
Google UI/Editors are not decoupled with the backend like MS WOPI APIs. They have to be used alongwith the Google Storage.
Google Docs/Sheets/Slides APIs can be used to edit and modify the content of the docs stored in Google Storage.
Google Drive is the backend of Google Docs/Sheets/Slides.
Google Drive APIs can be used for faceless interactions. Ids between Google Drive and Google Docs can be shared.
My Drive is specific to the user.
View Spring Boot
Create a Spring Boot Application from Spring Initializer using Maven as the build management.
Import the project in Eclipse.
Run the project using ./mvnw spring-boot:run -DSkipTests
Develop a Rest Controller for exposing the Rest APIs . Annonate the controller class with @RestController
Generated application has the main class annotated with @SpringBootApplication
Thymeleaf UI
Create a Controller class with @Controller annonation
Keep returning the View as string.
The View file
saurav28 / App Script
Created Mar 9, 2021
Developing Google Editor Add on
View App Script
1. App script editor
2. Calling third party APIs
3. Adding OAuth2 as a library
saurav28 / gdocs.html
Created Jan 29, 2021
Load Google Docs in iframe dynamically
View gdocs.html
<!DOCTYPE html>
<title>SDM Google Integration</title>
body {
background-color: black;
text-align: center;
color: white;
font-family: Arial, Helvetica, sans-serif;
saurav28 / gist:3f8e073946d7f3482ce1258264ec717c
Last active Jan 7, 2021
Script to connect to SDM using CmisJS
View gist:3f8e073946d7f3482ce1258264ec717c
//sample script to connect to SAP Document Managment using cmisjs
var cmis = require('cmis');
//Pre-requisite is to create a service instance of SDM and onboard a repository.
// SDM api endpoint will be provided in VCAP
var session = new cmis.CmisSession('<server url>');
View Initialhear.js
controller.hears('hi', 'message', async (bot, message) => {
console.log('I heard a message');
await bot.beginDialog(DIALOG_ID);
View BotkitConversation.js
let myDialog = new BotkitConversation(DIALOG_ID, controller);
try {
myDialog.ask('Do you like Music?', [
pattern: 'yes',
handler: async function (response, convo, bot) {
await askMusicPreferences(response, convo, bot);
View AskMusicPreference.js
function askMusicPreferences(answer, convo, bot) {
myDialog.ask('What would like to hear?', [
pattern: '.*',
handler: async (response, convo, bot, message) => {
try {
var channels = await YoutubeHelper.getChannel(response);
if (channels.length == 0) {
View Useful Facebook dev tips
Extend the facebook app token
1. Enter the access token.
2. Click on extend the access token and make it never expire
Unsupported post request. Object with ID 'me' does not exist, cannot be loaded due to missing permissions, or does not support this operation
View Useful git commands
git init
git commit -m "Your comment"
git remote add origin <Link to GitHub Repo>
git remote -v
git push -u origin master