picasa-extended

2.0.3 • Public • Published

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

Build Status

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

Package Sidebar

Install

npm i picasa-extended

Weekly Downloads

1

Version

2.0.3

License

MIT

Last publish

Collaborators

  • manishrawat4u