Skip to content

Instantly share code, notes, and snippets.

View saurav28's full-sized avatar

Saurav Sarkar saurav28

View GitHub Profile
@saurav28
saurav28 / Reminder App
Created July 7, 2022 16:59
Notes on the Reminder App
Requirements
1. List Reminders
2. CRUD Reminders
3. User sets a reminder
Reminder Object
1. Name
2. Time
3. Repeat
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.
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
saurav28 / App Script
Created March 9, 2021 18:00
Developing Google Editor Add on
1. App script editor https://script.google.com/home/projects/1AqDAmG9KBHIgIfV29rAYfrBnqBRMrscw4XxmMiTyUBpQMYgq15ViGkIk/edit
2. Calling third party APIs https://developers.google.com/workspace/add-ons/how-tos/non-google-services
3. Adding OAuth2 as a library https://morioh.com/p/5f9072920503
@saurav28
saurav28 / gdocs.html
Created January 29, 2021 13:34
Load Google Docs in iframe dynamically
<!DOCTYPE html>
<html>
<head>
<title>SDM Google Integration</title>
<style>
body {
background-color: black;
text-align: center;
color: white;
font-family: Arial, Helvetica, sans-serif;
@saurav28
saurav28 / gist:3f8e073946d7f3482ce1258264ec717c
Last active January 31, 2022 09:32
Script to connect to SDM using CmisJS
//sample script to connect to SAP Document Managment using cmisjs
// https://github.com/agea/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>');
controller.hears('hi', 'message', async (bot, message) => {
console.log('I heard a message');
await bot.beginDialog(DIALOG_ID);
});
let myDialog = new BotkitConversation(DIALOG_ID, controller);
try {
myDialog.say('Hello');
myDialog.ask('Do you like Music?', [
{
pattern: 'yes',
handler: async function (response, convo, bot) {
await askMusicPreferences(response, convo, bot);
}
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) {
Extend the facebook app token
https://developers.facebook.com/tools/debug/accesstoken
1. Enter the access token.
2. Click on extend the access token and make it never expire
Troubleshooting
Unsupported post request. Object with ID 'me' does not exist, cannot be loaded due to missing permissions, or does not support this operation