2012-09-26 44 views
1

所以我以前使用ClientLogin爲谷歌AdWords API的授權,但看着AuthForInstalledApps後說,這一機制有利於OAuth2.0遷移授權力學的ClientLogin到OAuth2谷歌的AdWords v201206的Perl

我已經註冊被棄用我的申請在API Consoles。現在我試圖按照如何perl的例子來進行設置:

use_oauth2.pl

我不能放置AdWords客戶,憑據~/adwords.properties,因爲我有,我會在做運動管理操作多個賬戶,並因此有多個客戶端ID。

但現在我試圖僅僅通過使用像這樣我的客戶的信息一個以此爲榜樣:

my $client = Google::Ads::AdWords::Client->new(
    { 
     version => 'v201206', 
     developer_token => TOKEN, 
     client_id => $google_account_id 
    } 
); 

$client->get_auth_token_handler()->set_email($login); 
$client->get_auth_token_handler()->set_password($password); 

然而,當我通過這一步,當它試圖初始化Client對象時,它拋出這個錯誤:

Can't use an undefined value as a HASH reference at (eval 845)[/usr/lib/perl5/vendor_perl/5.8.8/HTTP/Message.pm:371] line 1. at (eval 845)[/usr/lib/perl5/vendor_perl/5.8.8/HTTP/Message.pm:371] line 1 
HTTP::Message::__ANON__[(eval 845)[/usr/lib/perl5/vendor_perl/5.8.8/HTTP/Message.pm:371]:1]() called at /home/etienne/backend/libs/Google/Ads/Common/HTTPTransport.pm line 30 
Google::Ads::Common::HTTPTransport::client('Google::Ads::Common::HTTPTransport=HASH(0xb59b830)', 'Google::Ads::AdWords::Client=SCALAR(0x9b9bb60)') called at /home/etienne/backend/libs Google/Ads/AdWords/Client.pm line 180 
Google::Ads::AdWords::Client::START('Google::Ads::AdWords::Client=SCALAR(0x9b9bb60)', 1, 'HASH(0xb582e70)') called at /usr/lib/perl5/site_perl/5.8.8/Class/Std/Fast.pm line 251 
Class::Std::Fast::__ANON__[/usr/lib/perl5/site_perl/5.8.8/Class/Std/Fast.pm:252]() called at /usr/lib/perl5/site_perl/5.8.8/Class/Std/Fast.pm line 287 
Class::Std::Fast::new('Google::Ads::AdWords::Client', 'HASH(0xb54c210)') called at /home/etienne/backend/search_marketing/data_exchange/lib/GoogleAPIv2.pm line 3555 
GoogleAPIv2::get_adwords_client('GoogleAPIv2=HASH(0xb556d10)', 4202697829) called at /home/etienne/backend/search_marketing/data_exchange/lib/GoogleAPIv2.pm line 230 
GoogleAPIv2::add_campaign('GoogleAPIv2=HASH(0xb556d10)', 'name', 'API Upgrade Test Campaign - 1348613850', 'google_account_id', 4202697829, 'account_id', 207, 'country_code', 'US', ...) called at google_add_campaign.t line 110 
main::main() called at google_add_campaign.t line 26 
scalar context return from CODE(0x9b909c0): *Class::Std::Fast::_cache 
1..3 

我正在使用Perl v5.8.8。我已安裝最新的Adwords Perl Client Library v2.7.2。是否存在某種依賴性問題? 我該如何解決這個問題。您可以提供的任何信息都會非常有幫助。謝謝。

+1

根據[CPAN測試人員結果](http://www.cpantesters.org/distro/G/GOOGLE-ADWORDS-PERL-CLIENT.html#GOOGLE-ADWORDS-PERL-CLIENT-2.7.2) Google :: Ads :: AdWords :: Client](https://metacpan.org/module/Google::Ads::AdWords::Client),它尚未經過Perl 5.8.8的測試。最新的(成功測試)版本是5.8.9。這可能是不相關的,但也可能是因爲問題追溯到標準模塊。 – simbabque

回答

0

它看起來像我只是需要有,因爲我已經安裝了沒有這是傳遞給HTTP/Message.pm模塊中的AUTOLOAD()子程序的方法decode()版本安裝了最新的HTTP/Message.pmv6.0.3模塊。