0

我在 perl 和 CPAN 中获得 www:Facebook:api

在 /usr/share/perl5/WWW/Facebook/API/Auth.pm 第 62 行的哈希元素中使用 %field 中的未初始化值使用时出错。我定义了所有键

      #!/usr/bin/perl -w

     use strict;
     use warnings;
     use CGI;
     use WWW::Facebook::API;
     use WWW::Facebook::API::Auth;

     use HTTP::Request;
     use LWP;

     my $TMP    = $ENV{HOME}.'/tmp';

     my $facebook_api      = '--------';
     my $facebook_secret   = '-------';
     my $facebook_clientid = '--------';

     my $gmail_user        = '-------';
     my $gmail_password    = '--------';

     my $client = WWW::Facebook::API->new(

     desktop         => 1,
     api_version     => '1.0',
     api_key         => $facebook_api,
     secret          => $facebook_secret,
     throw_errors    => 1,     
     );

     $client->app_id($facebook_clientid);

     local $SIG{INT} = sub {
     print "Logging out of Facebookn";
     my $r = $client->auth->logout;
     exit(1);
      };

     my $token = $client->auth->create_token;
     print "$token \n";

     $client->auth->get_session($token);
     print "$client \n";
4

1 回答 1

2

WWW::Facebook::API 看起来已经有一段时间没有更新了。该文件的第 62 行是:

$self->base->{ $field{$key} } = $resp->{$key};

未定义的值是$field{$key}零件。%field哈希是 Facebook API 的已知字段名称(即 Facebook 返回给您的数据中的字段)与模块希望调用它们的名称之间的硬编码映射。Facebook 似乎在其数据中添加了一些额外的字段,并且模块尚未更新以处理它们。

最终,这只是一个警告;如果你愿意,你可以忽略它。如果您希望脚本的输出更整洁,可以将该行更改为:

$self->base->{ $field{$key} } = $resp->{$key} if defined $field{$key};
于 2013-08-24T14:17:20.720 回答