Ruby library for Picasa Web Albums Data API
Note: Picasa service will retire: Moving on from Picasa
gem install picasa
client = Picasa::Client.new(user_id: "username@gmail.com")
client.album.list
# => Picasa::Presenter::AlbumList
client.album.show("album_id")
# => Picasa::Presenter::Album
client.photo.create("album_id", file_path: "path/to/my-photo.png")
# => Picasa::Presenter::Photo
When request is authenticated, response will contain private data, however this can be controlled by access
parameter.
You can authenticate by specifing access_token:
client = Picasa::Client.new(user_id: "some.user@gmail.com", access_token: "access-token")
As authenticating by providing password is no longer possible due to google API shutdown https://developers.google.com/accounts/docs/AuthForInstalledApps
you need to set access_token
for authenticated requests.
For one time usage, you can retrieve access_token from google playground:
access_token
valueOAuth2 integration is not yet supported in this gem.
YOUR_CLIENT_ID
https://accounts.google.com/o/oauth2/auth?scope=http://picasaweb.google.com/data/&redirect_uri=urn:ietf:wg:oauth:2.0:oob&response_type=code&client_id=YOUR_CLIENT_ID
code
signet
refresh_token
client_id = "client-id"
client_secret = "client-secret"
code = "authorization-code"
require "signet/oauth_2/client" signet = Signet::OAuth2::Client.new( code: code, token_credential_uri: "https://www.googleapis.com/oauth2/v3/token", client_id: client_id, client_secret: client_secret, redirect_uri: "urn:ietf:wg:oauth:2.0:oob" ) signet.fetch_access_token! signet.refresh_token
* Note `refresh_token`
* Before gem usage, you can get `access_token` by:
```ruby
require "signet/oauth_2/client"
signet = Signet::OAuth2::Client.new(
client_id: client_id,
client_secret: client_secret,
token_credential_uri: "https://www.googleapis.com/oauth2/v3/token",
refresh_token: refresh_token
)
signet.refresh!
# Use access token with picasa gem
signet.access_token
You can connect via proxy server setting https_proxy
or HTTPS_PROXY
environment variable to valid URL.
You can install thor script for uploading all photos and videos from given directory:
thor install https://github.com/morgoth/picasa/raw/master/extra/Thorfile --as imagery --force
Updating script can be done by:
thor update imagery
And then use it (it will create album taking title from folder name and upload all photos from that directory):
GOOGLE_USER_ID=your.email@gmail.com GOOGLE_ACCESS_TOKEN=access-token thor imagery:upload path-to-folder-with-photos
If your upload was somehow interrupted, you can resume it by adding --continue
option:
GOOGLE_USER_ID=your.email@gmail.com GOOGLE_ACCESS_TOKEN=access-token thor imagery:upload --continue path-to-folder-with-photos
If you run out of quota and want to resize images to fit Picasa free storage limits, you can install rmagick
gem and run (this will modify files):
thor imagery:resize path-to-folder-with-photos
Picasa uses gzipped requests to speedup fetching results. Benchmarks are available on Vinicius Teles gist
Copyright (c) Wojciech Wnętrzak, released under the MIT license.