picasa-extended
v2.0.3
Published
Picasa web albums client for node (with video upload support)
Downloads
11
Maintainers
Readme
Picasa Video Upload
var gotStream = got.stream(`https://www.example.com/file`, {
encoding: null,
headers: {
//'Authorization': 'Bearer ' + accessToken
}
});
var videoData = {
body: gotStream,
contentLength: 1200102, // in bytes. max content limit is 1GB as of now.
mimeType: 'video/mp4', //should be actual mime type of video
title: 'title of the video',
summary: `summary for the video`
};
picasa.postVideo(accessToken, albumId, videoData, (a) => {
console.log(`this.bytes: ${bytesReceived}, gotStream.isPaused: ${gotStream.isPaused()}, ` + JSON.stringify(a));
});
CI
A simple Picasa Web Albums client (2.0) for nodejs. Includes Auth helpers.
Install
$ npm install --save picasa
Usage
(Check out the examples dir too, rename config.example.json > config.json and add your credentials)
const Picasa = require('picasa')
const picasa = new Picasa()
NOTE: Every Picasa API request requires an access token.
Photos
Get
const options = {
maxResults : 10 // by default get all
albumId : "6338620891611370881" // by default all photos are selected
}
picasa.getPhotos(accessToken, options, (error, photos) => {
console.log(error, photos)
})
Post
Where binary is the binary's file and the albumId the album id to be stored.
const photoData = {
title : 'A title',
summary : 'Summary or description',
contentType : 'image/jpeg', // image/bmp, image/gif, image/png
binary : binary
}
picasa.postPhoto(accessToken, albumId, photoData, (error, photo) => {
console.log(error, photo)
})
Delete
picasa.deletePhoto(accessToken, albumId, photoId, (error) => {
console.log(error)
})
Albums
Get
const options = {}
picasa.getAlbums(accessToken, options, (error, albums) => {
console.log(error, albums)
})
Create
const albumData = {
title: 'My first album',
summary: 'First album with Picasa API'
}
picasa.createAlbum(accessToken, albumData, (error, albums) => {
console.log(error, albums)
})
Auth
To get an access token follow the next flow:
1.Get the Auth URL and redirect the user to it.
// Get config here API Manager > Credentials https://console.developers.google.com/home/dashboard
const config = {
clientId : 'yourClientId',
redirectURI : 'redirectURI'
}
const authURL = picasa.getAuthURL(config)
2.Google displays a consent screen to the user, asking them to authorize your application to request some of their data.
3.Google redirects a code to your redirectURI.
4.Use the code given as GET param in order to get an access token:
// Get config here API Manager > Credentials https://console.developers.google.com/home/dashboard
const config = {
clientId : 'yourClientId',
redirectURI : 'redirectURI'
clientSecret : 'yourClientSecret'
}
picasa.getAccessToken(config, code, (error, accessToken, refreshToken) => {
console.log(error, accessToken, refreshToken)
})
5.If you need to renew an expired accessToken
use the refreshToken
with renewAccessToken
:
const config = {
clientId : 'yourClientId',
redirectURI : 'redirectURI'
clientSecret : 'yourClientSecret'
}
picasa.renewAccessToken(config, refreshToken, (error, accessToken) => {
console.log(error, accessToken)
})
Change Log
16/05/2017: Get album, Create Album, Renew access token added. Get Photos can get all photos from an album id or all.
Contributors
Thanks to z1c0, hbakhtiyor, pauarge, wreuven
License
MIT ©
Play around https://developers.google.com/oauthplayground/?code=4/usq8QmuezR3Au_0UKyj9-UXmf6Bw_ij8KFWgIziYbpM#
Picasa Docs https://developers.google.com/picasa-web/docs/2.0/developers_guide_protocol