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 に答える