NAME
   WebService::PhotoZou - Easy-to-use Interface for PhotoZou Web Services

SYNOPSIS
     use WebService::PhotoZou;

     my $api = WebService::PhotoZou->new(
         username => $username,
         password => $password,
         site     => 'jp',      # if you use photozou.com, set 'com'.
     );

     my $photo_id = $api->photo_add(
         photo       => $filename, # required
         album_id    => $album_id, # required
         photo_title => $title,
         tag         => $tag,
         comment     => $comment,
         date_type   => 'date',    # 'exif' or 'date'
         year        => $year,     # required when date_type is 'date'
         month       => $month,    # required when date_type is 'date'
         day         => $day,      # required when date_type is 'date'
     ) or die $api->errormsg;

     my $album_id = $api->photo_add_album(
         name                   => $name,        # required
         description            => $description,
         perm_type              => 'allow',      # 'allow' or 'deny'
         perm_type2             => 'user_group', # 'net' or 'everyone' or 'all or 'user_group'
         perm_id                => $perm_id,     # you can set it when you set perm_type2 'user_group'
         order_type             => 'upload',     # 'upload' or 'date' or 'comment' or 'file_name'
         copyright_type         => 'normal',     # 'normal' or 'creativecommons'
         copyright_commercial   => 'yes',        # 'yes' or 'no'
         copyright_modification => 'yes',        # 'yes' or 'no' or 'share'
     ) or die $api->errormsg;

     my $albums = $api->photo_album or die $api->errormsg;
     for my $album (@{$albums}) {
         $album->{album_id};
         $album->{user_id};
         $album->{name};
         $album->{description};
         $album->{perm_type};
         $album->{perm_type2};
         $album->{perm_id};
         $album->{order_type};
         $album->{photo_num};
     }

     my $photos = $api->search_public(
         type                    => 'photo',  # 'photo' or 'video' or 'all'
         order_type              => 'date',   # 'date' or 'favorite'
         keyword                 => $keyword,
         copyright               => 'normal', # 'normal' or 'creativecommons' or 'all'
         copyright_commercial    => 'yes',    # you can set 'yes' or 'no' when you set copyright 'creativecommons'
         copyright_modifications => 'yes',    # you can set 'yes' or 'no' or 'share' when you set copyright 'creativecommons'
         limit                   => 1000,
         offset                  => 0,
     ) or die $api->errormsg;
     for my $photo (@{$photos}) {
         $photo->{photo_id};
         $photo->{user_id};
         $photo->{album_id};
         $photo->{photo_title};
         $photo->{favorite_num};
         $photo->{comment_num};
         $photo->{copyright};
         $photo->{copyright_commercial};
         $photo->{copyright_modifications};
         $photo->{regist_time};
         $photo->{url};
         $photo->{image_url};
         $photo->{original_image_url};
         $photo->{thumbnail_image_url};
     }

     my $groups = $api->user_group or die $api->errormsg;
     for my $group (@{$groups}) {
         $group->{group_id};
         $group->{name};
         $group->{user_num};
     }

DESCRIPTION
   This module priovides you an Object Oriented interface for PhotoZou Web
   Services.

   PhotoZou (http://photozou.jp/) is a Internet-based service that can
   easily share photo and album.

METHODS
   All API methods returns undef on failure. You can get error objects by
   errors or get formatted message by errormsg.

 new([%options])
   Returns an instance of this module. The following option can be set:

     username
     password
     site     # 'jp' or 'com'

 ua([$ua])
   Set or get an LWP::UserAgent instance.

 username([$username])
   Accessor for username.

 password([$password])
   Accessor for password.

 photo_add(%options)
   Add photo/movie. Returns added photo/movie's id. The following option
   can be set:

     photo       # must be set filename.
     album_id    # required
     photo_title
     tag
     comment
     date_type   # 'exif' or 'date'
     year        # required when date_type is 'date'
     month       # required when date_type is 'date'
     day         # required when date_type is 'date'

   See the official API documents about detail of options and return
   values.

 photo_add_album(%options)
   Add album. Returns added album's id. The following option can be set:

     name                   # required
     description
     perm_type              # 'allow' or 'deny'
     perm_type2             # 'net' or 'everyone' or 'all or 'user_group'
     perm_id                # you can set when you set perm_type2 'user_group'
     order_type             # 'upload' or 'date' or 'comment' or 'file_name'
     copyright_type         # 'normal' or 'creativecommons'
     copyright_commercial   # 'yes' or 'no'
     copyright_modification # 'yes' or 'no' or 'share'

 photo_album
   Returns your albums list. The hashref contains the following fields:

     album_id
     user_id
     name
     description
     perm_type
     perm_type2
     perm_id
     order_type
     photo_num

 search_public(%options)
   Search public photo/movie. The following option can be set:

     type                    # 'photo' or 'video' or 'all'
     order_type              # 'date' or 'favorite'
     keyword
     copyright               # 'normal' or 'creativecommons' or 'all'
     copyright_commercial    # you can set 'yes' or 'no' when you set copyright 'creativecommons'
     copyright_modifications # you can set 'yes' or 'no' or 'share' when you set copyright 'creativecommons'
     limit
     offset

   Returns result objects as arrayref. The hashref contains the following
   fields:

     photo_id
     user_id
     album_id
     photo_title
     favorite_num
     comment_num
     copyright
     copyright_commercial
     copyright_modifications
     regist_time
     url
     image_url
     original_image_url
     thumbnail_image_url

 user_group
   Returns your user groups as arrayref. The hashref contains the following
   fields:

     group_id
     name
     user_num

 errors
   Returns hashref of error objects as arrayref. The hashref contains the
   following fields:

     code
     msg

 errormsg
   Returns formatted error message.

 nop
   API test method.

AUTHOR
   Jiro Nishiguchi <[email protected]>

   This library is free software; you can redistribute it and/or modify it
   under the same terms as Perl itself.

SEE ALSO
   *   http://photozou.jp/

   *   http://photozou.jp/basic/api

   *   http://photozou.com/

   *   http://photozou.com/basic/api