I was able to create google sheet using service account, however unable to insert permissions to the sheet for users :
function createSheet(jwt, apiKey) {
const sheets = google.sheets({version: 'v4'});
var request = {
resource: {
"properties": {
"title": "testSheet"
}
},
auth: jwt
};
Below is the response from create sheet api:
config: {transformRequest: {…}, transformResponse: {…}, timeout: 0, xsrfCookieName: "XSRF-TOKEN", xsrfHeaderName: "X-XSRF-TOKEN", …}
data: {spreadsheetId: "XXX", properties: {…}, sheets: Array(1), spreadsheetUrl: "https://docs.google.com/spreadsheets/d/XXX/edit"}
...
status: 200
statusText: "OK"
My code.
function insertPermission(fileId) {
var body = {
'value': 'xxx@gmail.com',
'type': 'user',
'role': 'owner'
};
var drive=google.drive({version: 'v3'});
drive.permissions.create({
'fileId': fileId, //sheetID returned from create sheet response
'resource': body
}, function(err, response) {if (err) {
console.error(err);
return;
} else{
console.log(JSON.parse(JSON.stringify(response))) ;
}
});
Error from insertPermission :
index.js:114 Error: Insufficient Permission at createError
alternately, Is there a way to specify file permissions in sheets.create api ?