Partkeepr: Probleme beim Einrichten von Octopart in v1.2.0

Erstellt am 16. Feb. 2017  ·  11Kommentare  ·  Quelle: partkeepr/PartKeepr

System Information

  • PartKeepr-Version: v1.2.0
  • Auf dem Demosystem reproduzierbar: Nein (da ich die Konfiguration auf dem Demosystem nicht ändern kann und die Octopart-Integration dort zu funktionieren scheint.)

So reproduzieren Sie

Ich habe ein sehr begrenztes Verständnis davon, wie der Octopart-API-Schlüssel in das System geschoben wird, daher mache ich einige Annahmen, während ich dies schreibe (von denen einige falsch sein können), also haben Sie bitte Geduld. Außerdem werde ich in diesem Fehlerbericht 'xxxxxxxx' anstelle meines echten Octopart-API-Schlüssels verwenden.

Beim Versuch, die Octopart-Unterstützung für meine PartKeepr v1.2.0-Installation einzurichten, ist ein Problem aufgetreten. Ich begann, indem ich einfach den Anweisungen in der app/config/parameters.php.dist folgte, die besagen, die Octopart-API-Eigenschaft in der Datei parameters.php festzulegen:

$container->setParameter('partkeepr.octopart.apikey', 'xxxxxxxx')`

Dies schien keine Auswirkungen zu haben und aktivierte die Octopart-Unterstützung in PartKeepr nicht. Schließlich ging ich zurück und führte das Web/Setup erneut aus, was dann beim Schritt "Bestehende Konfiguration abrufen" mit der Fehlermeldung "Ungültiger Authentifizierungsschlüssel" fehlschlug. Aus einer Laune heraus setze ich die Eigenschaft partkeepr.octopart.apikey wie folgt:

$container->setParameter('partkeepr.octopart.apikey', 'https://octopart.com/api/v3/parts/match?apikey='xxxxxxxx')`

Ich habe dann das Web-/Setup-Tool erneut ausgeführt und konnte den Schritt "Vorhandene Konfiguration abrufen" erfolgreich ohne Fehler überstehen und dann den Rest des Setup-Prozesses erfolgreich fortsetzen. Nachdem Sie sich jedoch wieder bei PartKeepr angemeldet, das Detailfenster für einen Artikel geöffnet und auf die Schaltfläche Octopart geklickt hatten, wurde das Octopart-Fenster angezeigt, war jedoch vollständig leer (beachten Sie, dass in der Benutzeroberfläche keine Fehlermeldungen angezeigt wurden.) Ein kurzer Blick auf den partkeepr. log zeigte folgenden Fehler:

request.CRITICAL: Uncaught PHP Exception Guzzle\Http\Exception\ClientErrorResponseException: "Client error response [status code] 401 [reason phrase] Unauthorized [url] http://octopart.com/api/v3/parts/search?apikey=https%3A%2F%2Foctopart.com%2Fapi%2Fv3%2Fparts%2Fmatch%3Fapikey%3Dxxxxxxxx&q=STD950BLK&start=0&include%5B0%5D=short_description&include%5B1%5D=specs&include%5B2%5D=datasheets&limit=20" at /var/www/partkeepr.domain.com/vendor/guzzle/guzzle/src/Guzzle/Http/Exception/BadResponseException.php line 43 {"exception":"[object] (Guzzle\\Http\\Exception\\ClientErrorResponseException(code: 0): Client error response\n[status code] 401\n[reason phrase] Unauthorized\n[url] http://octopart.com/api/v3/parts/search?apikey=https%3A%2F%2Foctopart.com%2Fapi%2Fv3%2Fparts%2Fmatch%3Fapikey%3Dxxxxxxxx&q=STD950BLK&start=0&include%5B0%5D=short_description&include%5B1%5D=specs&include%5B2%5D=datasheets&limit=20 at /var/www/partkeepr.domain.com/vendor/guzzle/guzzle/src/Guzzle/Http/Exception/BadResponseException.php:43)"} []

Aus der obigen Protokollmeldung geht hervor, dass das Problem ein Problem mit der APIkey-Verifizierung/-Validierung des Webs/Setups ist. Es scheint, dass der Prozess den vollständigen Octopart-URL-Endpunkt (mit dem als URL-Parameter enthaltenen apikey) benötigt, um validiert zu werden; PartKeepr selbst möchte jedoch nur den zur Laufzeit angegebenen eigenständigen apikey-String zur Ersetzung, was sinnvoll ist, da die URL für die API in der const OCTOPART_ENDPOINT in /src/PartKeepr/OctoPartBundle/Services/OctoPartService.php angegeben ist.

Die Problemumgehung dafür (zumindest die, die ich vorerst verwendet habe) besteht darin, den vollständigen Octopart-API-Endpunkt (mit dem API-Schlüssel als URL-Parameter) in der parameters.php für den Setup-Prozess zu belassen, der anscheinend erforderlich ist erfolgreich abschließen, um PartKeepr davon zu überzeugen, dass die Octopart-Unterstützung aktiviert ist. Dann habe ich die Datei /src/PartKeepr/OctoPartBundle/Services/OctoPartService.php geändert, indem ich den apiKey einem Zeichenfolgenliteral zugewiesen habe, das meinen Octopart-API-Schlüssel darstellt (wie unten gezeigt):

public function __construct($apiKey) { $this->apiKey = "xxxxxxxx"; }

Ich denke, die Lösung dafür besteht darin, die Validierung des API-Schlüssels im Web-/Setup-Dienstprogramm zu korrigieren, aber ich bin mir nicht sicher. Ich entschuldige mich, wenn ich etwas falsch verstanden habe oder wie dieser Prozess funktioniert.

Danke schön!

Hilfreichster Kommentar

Hi!
Ich hatte Probleme mit der Octopart-Integration zu. Ich habe meinen API-Schlüssel in parameters,php eingefügt, setupa erneut ausgeführt, aber der Octopart-Suchstehlen funktionierte nicht. Also bin ich dem Rat von @tracklogic
sudo rm -rf app/cache/*
Dann habe ich das Setup erneut ausgeführt, und jetzt funktioniert alles!

Alle 11 Kommentare

Da mehrere Leute die OctoPart-Integration einrichten, glaube ich nicht, dass die Implementierung falsch ist, sondern Ihr API-Schlüssel.

Ich glaube, ich weiß, was das Problem ist.

Setup überprüft den OctoPart-API-Schlüssel nicht. Was Sie zu der Annahme führt, dass Sie anstelle des Schlüssels selbst die vollständige OctoPart-URI eingeben müssen, was dann zu einem Fehler beim Abrufen der Daten führt.

Invalid Authentication Key wird angezeigt, wenn der Schlüssel in app/authkey.php nicht mit dem von Ihnen eingegebenen übereinstimmt.

Ich hatte auch Probleme bei der Installation von Octopart.
Was ich getan habe, ist den Setup-Prozess erneut auszuführen (nachdem der API-Schlüssel gespeichert wurde). Dann funktionierte die Octopart-Suche wie beabsichtigt.

Ich habe dies schon einmal getan ... es speichert den OctoPart-Schlüssel (oder das Fehlen desselben) irgendwo im Cache-Verzeichnis - ich habe gerade den Cache-Ordner gelöscht und PartKeepr aktualisiert und festgestellt, dass ich jetzt einen OctoPart-Schlüssel angegeben habe - bit von Headscratching für eine Weile, da es mir sagte, dass ich keines in der parameters.php angegeben hatte, als ich es hatte!

@WickedAx können Sie zusätzliches Feedback geben?

Keine Rückmeldung, Schließung

Über einen längeren Zeitraum keine Rückmeldung gegeben, das Problem wird geschlossen.

Fühlen Sie sich frei, wieder zu öffnen, wenn Sie zusätzliche Informationen haben.

Hi!
Ich hatte Probleme mit der Octopart-Integration zu. Ich habe meinen API-Schlüssel in parameters,php eingefügt, setupa erneut ausgeführt, aber der Octopart-Suchstehlen funktionierte nicht. Also bin ich dem Rat von @tracklogic
sudo rm -rf app/cache/*
Dann habe ich das Setup erneut ausgeführt, und jetzt funktioniert alles!

Das gleiche Problem, das Löschen des Caches wie bereits erwähnt, hat den Trick gemacht.

Ich habe die obigen Tricks ausprobiert, den Cache gelöscht und das Setup erneut ausgeführt.
Ich glaube, mein Problem liegt bei meinem Octopart-API-Schlüssel. Octopart hat den API-Schlüssel neben dem Text aufgeführt, der sagt:

Ihre Anfrage nach einem Octopart-API-Schlüssel wird geprüft.

Es fühlt sich für mich seltsam an, einen inaktiven API-Schlüssel auszugeben, hoffentlich ist dies das Problem, das ich habe.
Es wäre gut, eine technische oder bessere Fehlermeldung zu haben, die darüber informiert, warum der API-Aufruf fehlgeschlagen ist.

Gibt es eine Möglichkeit, das Debuggen oder andere Protokolldateien als die Apache-Protokolle zu aktivieren?

@lhovo Der Kommentar besagt auch, dass Sie sich bei Fragen an [email protected] wenden müssen. Zum Beispiel; wenn es viel zu lange überprüft wird; kontaktiere Sie. Es wird nicht funktionieren, bis es nicht mehr überprüft wird.

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen

Verwandte Themen

baradhili picture baradhili  ·  17Kommentare

kgabryszewska picture kgabryszewska  ·  8Kommentare

HolgerHeckeroth picture HolgerHeckeroth  ·  4Kommentare

Drachenkaetzchen picture Drachenkaetzchen  ·  11Kommentare

Gasman2014 picture Gasman2014  ·  26Kommentare