Ich bin ziemlich neu zu APIs, so dass ich nicht weiß, ob dies einfacher sein sollte.Ich kann nicht mit einer API verbinden
Ich schreibe das folgende Perl-Skript
use strict;
use LWP::UserAgent;
require HTTP::Request;
my $request = HTTP::Request->new(GET => 'http://api.elsevier.com/content/ev/results?apiKey=1234&query=stress&database=c&updateNumber=1&pageSize=1');
my $ua = LWP::UserAgent->new;
my $response = $ua->request($request);
dann, wenn ich meine Antwort bekommen und es im Debugger drucke ich die folgende
HTTP::Response=HASH(0x9aedff8)
'_content' => '{"service-error":{"status":{"statusCode":"AUTHENTICATION_ERROR","statusText":"Requestor configuration settings insufficient for access to this resource."}}}'
'_headers' => HTTP::Headers=HASH(0x9aedfe8)
'allow' => 'GET'
'client-date' => 'Wed, 29 Mar 2017 08:08:25 GMT'
'client-peer' => '198.185.19.118:80'
'client-response-num' => 1
'content-length' => 156
'content-type' => 'application/json;charset=UTF-8'
'date' => 'Wed, 29 Mar 2017 08:08:24 GMT'
'p3p' => 'CP="IDC DSP LAW ADM DEV TAI PSA PSD IVA IVD CON HIS TEL OUR DEL SAM OTR IND OTC"'
'server' => 'api.elsevier.com 9999'
'vary' => 'Origin'
'x-cnection' => 'close'
'x-els-apikey' => 'e688c9db4db0386581dbe4c4dda46164'
'x-els-reqid' => '0000015b190d89fe-a0d0'
'x-els-status' => 'AUTHENTICATION_ERROR(Requestor configuration settings insufficient for access to this resource.)'
'x-els-transid' => 'cbf787b4-d171-4e35-8237-8cab3c931205'
'x-re-ref' => '1 1490774904423414'
'_msg' => 'Forbidden'
'_protocol' => 'HTTP/1.1'
'_rc' => 403
'_request' => HTTP::Request=HASH(0x9fc3000)
'_content' => ''
'_headers' => HTTP::Headers=HASH(0x9ae73e0)
'user-agent' => 'libwww-perl/5.831'
'_method' => 'GET'
'_uri' => URI::http=SCALAR(0x9e25188)
-> 'http://api.elsevier.com/content/ev/results?apiKey=e688c9db4db0386581dbe4c4dda46164&query=stress&database=c&updateNumber=1&pageSize=1'
'_uri_canonical' => URI::http=SCALAR(0x9e25188)
-> REUSED_ADDRESS
einer der bemerkenswerten Linien erhalten wird
x-els-status' => 'AUTHENTICATION_ERROR(Requestor configuration settings insufficient for access to this resource.)'
Ich weiß nicht, wie man einen richtigen Antworttext bekommt. Ich habe versucht, auf ihren Websites nach Beispielen zu suchen, aber ich kann es nicht verstehen. Ich bin mir auch nicht sicher, ob der Schlüssel nur für Scopus ist, aber nicht für das Dorf, das ich benutzen möchte.
Dort ist die Website hier. https://dev.elsevier.com/index.html?utm_expid=89327795-0.AtRZzToKQ2u1mZEyQ3n7OQ.0&utm_referrer=https%3A%2F%2Fdev.elsevier.com%2Ftecdoc_ev_retrieval_request.html
jede Hilfe
API-Schlüssel sind für jeden Dienst spezifisch, sagst du, dass du versuchst, dies wiederzuverwenden? Auch sind sie normalerweise Rate begrenzt, also, wenn Sie den Service wieder und wieder geschlagen haben, erhalten Sie eine Meldung wie diese. Erwägen Sie, die Serverseite zu untersuchen, auf der Sie den API-Schlüssel eingerichtet haben. Ich glaube nicht, dass dies ein Perl-Problem ist. –
Ich habe eine Antwort mit einer kleinen Anleitung geschrieben, wie man mit so etwas anfangen kann. Aber wenn Sie sich nicht sicher sind, was Sie mit Ihrem API-Schlüssel tun können, sollten Sie wirklich mit Ihrem Account Manager oder demjenigen, der Ihnen diesen Schlüssel gegeben hat, sprechen. – simbabque