Opensocial.Album (v0.9)

opensocial.Album

Class for Album features.

Methods

opensocial.Album.getField

;String getField(key, opt_params)

Parameters
NameTypeDescription |

key

String

The key to get data for; see the Field class for possible values

opt_params

Map.<opensocial.DataRequest.DataRequestFields

Object>

Additional params to pass to the request.

Returns
TypeDescription |

String

The data

Description
Gets the album data that's associated with the specified key.

opensocial.Album.setField

;setField(key, data)

Parameters
NameTypeDescription |

key

String

The key to set data for

data

String

The data to set

Description
Sets data for this album associated with the given key.

opensocial.Album.Field

All of the fields that albums can have. It is only required to set ID. Other possible fields to set are: THUMBNAIL_URL, TITLE, DESCRIPTION, LOCATION, OWNER_ID, MEDIA_TYPE, MEDIA_MIME_TYPE, MEDIA_ITEM_COUNT. See also: opensocial.Album.getField()

opensocial.Album.Field.DESCRIPTION

string, description of the album. May be used interchangeably with the string 'description'.

opensocial.Album.Field.ID

string, unique identifier for the album. May be used interchangeably with the string 'id'.

opensocial.Album.Field.LOCATION

opensocial.Address, location corresponding to the album. May be used interchangeably with the string 'location'.

opensocial.Album.Field.MEDIA_ITEM_COUNT

integer, number of items in the album. May be used interchangeably with the string 'mediaItemCount'.

opensocial.Album.Field.MEDIA_MIME_TYPE

array of strings identifying the mime-types of media items in the Album. May be used interchangeably with the string 'mediaMimeType'.

opensocial.Album.Field.MEDIA_TYPE

array of MediaItem.TYPE, types of MediaItems in the Album. May be used interchangeably with the string 'mediaType'.

opensocial.Album.Field.OWNER_ID

string, ID of the owner of the album. May be used interchangeably with the string 'ownerId'.

opensocial.Album.Field.THUMBNAIL_URL

string, URL to a thumbnail cover of the album. May be used interchangeably with the string 'thumbnailUrl'.

opensocial.Album.Field.TITLE

string, the title of the album. May be used interchangeably with the string 'title'.

Example

Requesting orkut Albums and Photos, by Jason Cooper, orkut Team, Februrary 2009

CSS

img {

border: solid gray 1px;

}

  1. photoGrid img {

    float: left;
    width: auto;
    margin-right: 10px;

    }

table {

border: solid gray 1px;
background-color: #EEEEEE;
margin-bottom: 15px;

}

HTML

Photos from selected album:

JavaScript

// Fetches all of the viewer's albums that are publicly viewable (i.e.
// "shared with everyone"
function fetchAlbums() {

var req = opensocial.newDataRequest();
var idspec = opensocial.newIdSpec( {
'userId' : 'VIEWER',
'groupId' : 'SELF'
});

req.add(req.newFetchAlbumsRequest(idspec), 'viewerAlbums');

req.send(fetchAlbumsHandler);

};

// Callback function, executed when it finishes fetching the viewer's
// public albums
function fetchAlbumsHandler(resp) {

var viewerAlbumsResp = resp.get('viewerAlbums');

if (!viewerAlbumsResp.hadError()) {

var viewerAlbums = viewerAlbumsResp.getData();

// Add a table row for each album

viewerAlbums.each(function(album) {
createAlbumRow(album);
});
}

};

// Adds a new table row for the passed album, displaying its thumbnail,
// name, and description
function createAlbumRow(album) {

var row = document.createElement('tr');
var thumbnailCell = document.createElement('td');
var descriptionCell = document.createElement('td');

// Add an image tag to the first cell with the album's thumbnail;

// also include an event handler which executes fetchPhotos
// when the image is clicked, passing in the album's ID.
thumbnailCell.innerHTML = '';

// Output the album's title...

descriptionCell.innerHTML = '*' + gadgets.util.escapeString(album
.getTitle()) + '*';

// ... and description

descriptionCell.innerHTML += '' + gadgets.util.escapeString(album
.getDescription()) + '';

row.appendChild(thumbnailCell);

row.appendChild(descriptionCell);

// Add the new row to the table

document.getElementById('albumTable').appendChild(row);

};

// Fetches all photos from the album with the passed ID
function fetchPhotos(albumId) {

var req = opensocial.newDataRequest();
var idspec = opensocial.newIdSpec( {
'userId' : 'VIEWER',
'groupId' : 'SELF'
});

req.add(req.newFetchMediaItemsRequest(idspec, albumId), 'albumPhotos');

req.send(fetchPhotosHandler);

};

// Callback function, executed when orkut finishes fetching the
// requested media items
function fetchPhotosHandler(resp) {

document.getElementById('photoGrid').innerHTML = '';
var albumPhotosResp = resp.get('albumPhotos');

if (!albumPhotosResp.hadError()) {

var albumPhotos = albumPhotosResp.getData();

// Add each photo's thumbnail to the photo grid

albumPhotos.each(function(photo) {
addToPhotoGrid(photo);
});
}

};

// Adds the passed photo's thumbnail to the photo grid
function addToPhotoGrid(photo) {

document.getElementById('photoGrid').innerHTML += '';

};

// Execute fetchAlbums function when gadget loads
gadgets.util.registerOnLoadHandler(fetchAlbums);

{{ JsApiAlphaList_(v0.9) }}