Ich versuche, das Net::OAuth Modul zu verwenden, um mit der Yammer-API zu autorisieren, und ich habe das folgende Code-Snippet, ziemlich aus der Zusammenfassung auf CPAN genommen.Perl Net :: OAuth Problem
$Net::OAuth::PROTOCOL_VERSION = Net::OAuth::PROTOCOL_VERSION_1_0A;
my $q = new CGI;
my $request = Net::OAuth->request("request token")->from_hash($q->Vars,
request_url => $self->_request_token_url,
request_method => $q->request_method,
consumer_secret => $self->consumer_private,
);
Aber wenn ich versuche, und meinen Test führen Sie es wirft einen Fehler wie folgt:
Expected a hash! at /Library/Perl/5.8.8/Net/OAuth/Message.pm line 241.
Habe ich einen offensichtlichen Syntaxfehler gemacht oder bin ich an dem OAuth-Modul selbst suchen gehen zu müssen?
Ich dachte das zuerst auch, aber es ist nicht richtig. Sehen Sie sich die Quelle an, die von ccheneson verlinkt wird, nur das erste Argument wird als Hash-Referenz erwartet, der Rest wird von @_ in einen separaten Hash gezogen. –
Außerdem ist das eine ungerade Anzahl von Elementen in einem Hash-Konstruktor;) –
Es ist keine ungerade Anzahl von Elementen, weil $ q-> Vars im Listenkontext einen flacheren Hash zurückgibt. Aber das war der Schlüssel zur Lösung. Siehe meine bearbeitete Antwort. –