npm.io
2.0.3 • Published 8 years ago

picasa-extended

Licence
MIT
Version
2.0.3
Deps
2
Vulns
24
Weekly
0

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