Updated: GAS Library - OnedriveApp
OnedriveApp was updated to v1.0.2.
OnedriveApp was updated to v1.0.2.
OnedriveApp was updated to v1.0.1.
Added a method for retrieving access token and refresh token using this library.
By added this method, OneDrive APIs can be used by only this library.
This sample script is for changing values by checking duplicated values of JSON for Javascript.
Please see the following script. There is an array with a JSON data with 3 keys and 3 values. It is found that the values for each element duplicate. These duplicated values are changing by adding numbers.
I use this for managing filenames. This script also can be used for Google Apps Script. If this was useful for you, I’m glad.
ImgApp was updated to v1.2.0. New method was added.
This method is for updating thumbnail of files on Google Drive using images you selected.
For example, zip files don’t have the thumbnail on Google Drive. An icon is shown as the thumbnail. For the most files, Google Drive can create automatically each thumbnail. But there are sometimes files which cannot be created the thumbnail. Zip file is also one of them. In order to add and update thumbnails to such files, I added this method.
This sample script is for updating thumbnail of file on Google Drive using Python.
This sample supposes that quickstart is used and default quickstart works fine. In order to use this sample, please carry out as follows.
main() of the default quickstart to this sample.import base64 # This is used for this sample.
def main():
credentials = get_credentials()
http = credentials.authorize(httplib2.Http())
service = discovery.build('drive', 'v3', http=http)
with open("./sample.png", "rb") as f:
res = service.files().update(
fileId="### file ID ###",
body={
"contentHints": {
"thumbnail": {
"image": base64.urlsafe_b64encode(f.read()).decode('utf8'),
"mimeType": "image/png",
}
}
},
).execute()
print(res)
contentHints.thumbnail.image is URL-safe Base64-encoded image. So an image data that you want to use as new thumbnail has to be converted to URL-safe Base64-encoded data. For this, it uses base64.urlsafe_b64encode() at Python.
This sample script is for downloading files under a specific folder using Node.js. It can download files with Google Docs and others.
This sample supposes as follows. So please confirm it.
In order to use this sample, please carry out as follows.
listFiles() of the default quickstart to this sample.folderid. This script can retrieve files in the folder with folderid.drive-nodejs-quickstart.json. I think that there is the file at .credentials in your home directory.var SCOPES = ['https://www.googleapis.com/auth/drive.metadata.readonly']; to var SCOPES = ['https://www.googleapis.com/auth/drive.readonly'];.function listFiles(auth) {
var folderid = "### folder ID ###"; // Folder ID. This script downloads files in the folder with this folder ID.
var outputExtension = "pdf"; // Extension of output file. This is adapted to only Google Docs.
var outputMimeType = mime.lookup(outputExtension);
var service = google.drive('v3');
service.files.list({
auth: auth,
q: "'" + folderid + "' in parents and trashed=false",
fields: "files(id, name, mimeType)"
}, function(err, response) {
if (err) {
console.log('The API returned an error: ' + err);
return;
}
response.files.forEach(function(e){
if (e.mimeType.includes("application/vnd.google-apps")) {
var dlfile = fs.createWriteStream(e.name + "." + outputExtension);
service.files.export({
auth: auth,
fileId: e.id,
mimeType: outputMimeType
}).on('end', function() {
console.log("'%s' was downloaded as %s.", e.name, outputExtension);
}).on('error', function(err) {
console.error(err);
return process.exit();
}).pipe(dlfile);
} else {
var dlfile = fs.createWriteStream(e.name);
service.files.get({
auth: auth,
fileId: e.id,
alt: 'media'
}).on('end', function() {
console.log("'%s' was downloaded as %s.", e.name, mime.extension(e.mimeType));
}).on('error', function(err) {
console.error(err);
return process.exit();
}).pipe(dlfile);
}
});
});
}
This is a library of Google Apps Script for using Microsoft OneDrive.
This library can carry out following functions using OneDrive APIs.
You can see the detail information here https://github.com/tanaikech/OnedriveApp
In order to use this script, please retrieve client id, client secret and refresh token before. About this, you can see the detail information at https://gist.github.com/tanaikech/d9674f0ead7e3320c5e3184f5d1b05cc.
This is for the simple item upload is available for items with less than 4 MB of content. The detail information is https://dev.onedrive.com/items/upload_put.htm.
var fs = require('fs');
var mime = require('mime');
var request = require('request');
var file = './sample.zip'; // Filename you want to upload on your local PC
var onedrive_folder = 'SampleFolder'; // Folder name on OneDrive
var onedrive_filename = 'sample.zip'; // Filename on OneDrive
request.post({
url: 'https://login.microsoftonline.com/common/oauth2/v2.0/token',
form: {
redirect_uri: 'http://localhost/dashboard',
client_id: onedrive_client_id,
client_secret: onedrive_client_secret,
refresh_token: onedrive_refresh_token,
grant_type: 'refresh_token'
},
}, function(error, response, body) {
fs.readFile(file, function read(e, f) {
request.put({
url: 'https://graph.microsoft.com/v1.0/drive/root:/' + onedrive_folder + '/' + onedrive_filename + ':/content',
headers: {
'Authorization': "Bearer " + JSON.parse(body).access_token,
'Content-Type': mime.getType(file), // When you use old version, please modify this to "mime.lookup(file)",
},
body: f,
}, function(er, re, bo) {
console.log(bo);
});
});
});
This is for the resumable item upload is provided for large files or when a resumable transfer may be necessary. The detail information is https://dev.onedrive.com/items/upload_large_files.htm.
Netatmo API had been down from Aug. 10, 2017 19:30 JST to Aug. 11, 2017 19:00 JST. Now it’s working.
Updated: January 22, 2023
This sample script is for the interconversion between Google Docs (document, spreadsheet and presentation) and Microsoft Docs (word, excel and powerpoint). The feature is to convert them without Advanced Google Services.
Since Advanced Google Services is not used for this, if you publish your script with this script, you are not necessary to explain how to install Advanced Google Services. This script converts between Google Docs and Microsoft Docs using UrlFetchApp.fetch(). Although Drive API v3 is used, Drive API is automatically enabled by the recent update on Google. Ref (I’m sorry. This is Japanese language.) So you are not necessary to explain about the use of Drive API. By this, users will be easy to use the scripts that Drive API is used. This is very important for a lot of users.