I have found following problem on this code:
my $mediaItemId = 'AOvLn3Qhdjmtc34r4C3GIlYv6pGsf0LMpLdm1Bv05hovVu2virSTwQut0XIKm_rT9UkIBaXOfKGECFuESSkCxymnpebUQJ';
my $media_item;
eval {
$media_item = $service->mediaItems->get(
body => {
mediaItemId => $mediaItemId
}
)->execute({ auth_driver => $auth_driver });
};
if ($@) {
die "Error retrieving media object: $@";
}
The call fails due to this problem:
>x %required_param
> 0 'mediaItemId'
> 1 'AOvLn3Qhdjmtc34r4C3GIlYv6pGsf0LMpLdm1Bv05hovVu2virSTwQut0XIKm_rT9UkIBaXOfKGECFuESSkCxymnpebUQJ'
>p $url
> https://photoslibrary.googleapis.com/v1/mediaItems/{+mediaItemId}
>p $required_param{mediaItemId}
> AOvLn3Qhdjmtc34r4C3GIlYv6pGsf0LMpLdm1Bv05hovVu2virSTwQut0XIKm_rT9UkIBaXOfKGECFuESSkCxymnpebUQJ
>p $required_param{+mediaItemId}
> AOvLn3Qhdjmtc34r4C3GIlYv6pGsf0LMpLdm1Bv05hovVu2virSTwQut0XIKm_rT9UkIBaXOfKGECFuESSkCxymnpebUQJ
>$p = '+mediaItemId'
>p $required_param{$p}
>
>p $p
> +mediaItemId
>($p) = ($url =~ /{([^}]+)}/) <--- Original Reg Ex
>p $p
> +mediaItemId
>p $required_param{$p}
>
>($p) = ($url =~ /{\+([^}]+)}/) <--- Fixed Reg Ex
>p $required_param{$p}
AOvLn3Qhdjmtc34r4C3GIlYv6pGsf0LMpLdm1Bv05hovVu2virSTwQut0XIKm_rT9UkIBaXOfKGECFuESSkCxymnpebUQJ
I have solved the problem by following fix on lib/Google/API/Method.pm file:
- $url =~ s/{([^}]+)}/uri_escape(delete $required_param{$1})/eg;
+ $url =~ s/{\+([^}]+)}/uri_escape(delete $required_param{$1})/eg;
Hope it helps :)
I have found following problem on this code:
The call fails due to this problem:
I have solved the problem by following fix on lib/Google/API/Method.pm file:
Hope it helps :)