Partkeepr: Problèmes de configuration d'Octopart dans la version 1.2.0

Créé le 16 févr. 2017  ·  11Commentaires  ·  Source: partkeepr/PartKeepr

Informations système

  • Version PartKeepr : v1.2.0
  • Reproductible sur le système de démonstration : Non (car je n'ai pas la possibilité de modifier la configuration sur le système de démonstration et l'intégration Octopart semble y fonctionner.)

Comment reproduire

J'ai une compréhension très limitée de la façon dont la clé de l'API Octopart est introduite dans le système, donc je fais quelques hypothèses au moment où j'écris ceci (dont certaines peuvent être incorrectes), alors veuillez me supporter. De plus, j'utiliserai 'xxxxxxxx' à la place de ma véritable clé API Octopart dans ce rapport de bogue.

J'ai rencontré un problème en essayant de configurer la prise en charge d'Octopart pour mon installation PartKeepr v1.2.0. J'ai commencé en suivant simplement les instructions dans app/config/parameters.php.dist, qui disent de définir la propriété de l'API Octopart dans le fichier parameters.php :

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

Cela semblait n'avoir aucun effet et n'activait pas la prise en charge d'Octopart dans PartKeepr. Finalement, je suis revenu et j'ai exécuté à nouveau le Web/la configuration, qui a ensuite échoué à l'étape « Récupération de la configuration existante » avec le message d'erreur « Clé d'authentification non valide ». Sur un coup de tête, j'ai défini la propriété partkeepr.octopart.apikey comme suit :

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

J'ai ensuite réexécuté l'outil Web/d'installation et j'ai réussi à passer l'étape « Récupération de la configuration existante » sans aucune erreur, puis j'ai pu continuer le reste du processus d'installation avec succès ; Cependant, après s'être reconnecté à PartKeepr, avoir ouvert la fenêtre de détail d'un élément et cliqué sur le bouton Octopart, la fenêtre Octopart est apparue mais était complètement vide (notez qu'il n'y avait aucun message d'erreur affiché dans l'interface utilisateur). log a affiché l'erreur suivante :

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)"} []

D'après le message de journal ci-dessus, le problème semble être un problème avec la vérification/validation apikey du site Web/de l'installation. Il semblerait que le processus ait besoin du point de terminaison d'URL Octopart complet (avec la clé api incluse en tant que paramètre d'URL) pour être validé ; cependant, PartKeepr lui-même ne veut que la chaîne de clé api autonome spécifiée au moment de l'exécution pour la substitution, ce qui est logique car l'URL de l'API est spécifiée dans le const OCTOPART_ENDPOINT dans /src/PartKeepr/OctoPartBundle/Services/OctoPartService.php.

La solution de contournement (du moins celle que j'ai utilisée pour le moment) consiste à laisser le point de terminaison complet de l'API Octopart (avec la clé API incluse en tant que paramètre d'URL) dans parameters.php pour le processus d'installation, qui semble devoir terminer avec succès afin de convaincre PartKeepr que le support Octopart est activé. Ensuite, j'ai modifié le fichier /src/PartKeepr/OctoPartBundle/Services/OctoPartService.php en attribuant l'apiKey à un littéral de chaîne, représentant ma clé API Octopart (comme indiqué ci-dessous):

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

Je pense que le correctif consiste à corriger la validation de la clé API dans l'utilitaire Web/configuration, mais je n'en suis pas sûr. Mes excuses si j'ai mal compris quelque chose ou comment ce processus fonctionne.

À votre santé!

Commentaire le plus utile

Salut!
J'ai eu un problème avec l'intégration d'Octopart. J'ai inséré ma clé API dans parameters,php, j'ai réexécuté setupa, mais le vol de recherche Octopart n'a pas fonctionné. J'ai donc suivi les conseils de @tracklogic et j'ai supprimé le cache :
sudo rm -rf app/cache/*
Ensuite, j'ai réexécuté l'installation et tout fonctionne maintenant !

Tous les 11 commentaires

Comme plusieurs personnes ont configuré l'intégration OctoPart, je ne pense pas que l'implémentation soit mauvaise, mais plutôt votre clé API.

Je pense savoir quel est le problème.

Le programme d'installation ne vérifie pas la clé API OctoPart. Ce qui vous amène à supposer que vous auriez besoin d'entrer l'URI OctoPart complet au lieu de la clé elle-même, ce qui provoque alors une erreur lors de la récupération des données.

Invalid Authentication Key s'affiche si la clé dans app/authkey.php n'est pas égale à ce que vous avez entré.

J'ai également eu des problèmes pour installer Octopart.
Ce que j'ai fait, c'est réexécuter le processus d'installation (après que la clé API a été enregistrée). Ensuite, la recherche Octopart a fonctionné comme prévu.

Je l'ai déjà fait... il stocke la clé OctoPart (ou son absence) quelque part dans le répertoire de cache - je viens de supprimer le dossier de cache et d'actualiser PartKeepr et il a compris que j'avais maintenant spécifié une clé OctoPart - bit de se gratter la tête pendant un moment, car il me disait que je n'en avais pas spécifié dans parameters.php quand je l'avais fait !

@WickedAx pouvez-vous fournir des commentaires supplémentaires ?

Aucun commentaire donné, fermeture

Aucun commentaire donné pendant une période prolongée, clôture du problème.

N'hésitez pas à rouvrir si vous avez des informations supplémentaires.

Salut!
J'ai eu un problème avec l'intégration d'Octopart. J'ai inséré ma clé API dans parameters,php, j'ai réexécuté setupa, mais le vol de recherche Octopart n'a pas fonctionné. J'ai donc suivi les conseils de @tracklogic et j'ai supprimé le cache :
sudo rm -rf app/cache/*
Ensuite, j'ai réexécuté l'installation et tout fonctionne maintenant !

Même problème, la suppression du cache comme mentionné a déjà fait l'affaire.

J'ai essayé les astuces ci-dessus, en supprimant le cache et en exécutant à nouveau la configuration.
Je pense que mon problème concerne ma clé API octopart, Octopart a la clé API répertoriée à côté du texte qui dit

Votre demande de clé API Octopart est en cours d'examen.

Il me semble étrange d'émettre une clé API inactive, j'espère que c'est le problème que je rencontre.
Il serait bon d'avoir une technique ou un meilleur message d'erreur expliquant pourquoi l'appel d'API a échoué.

Existe-t-il un moyen d'activer le débogage ou tout autre fichier journal autre que les journaux Apache ?

@lhovo Le commentaire indique également que vous devez contacter [email protected] si vous avez des questions. Par exemple; s'il est à l'étude depuis trop longtemps ; contactez-les. Il ne fonctionnera pas tant qu'il n'est plus en cours d'examen.

Cette page vous a été utile?
0 / 5 - 0 notes

Questions connexes

JoarGjersund picture JoarGjersund  ·  12Commentaires

mctomaszek picture mctomaszek  ·  20Commentaires

gfarcas picture gfarcas  ·  20Commentaires

Drachenkaetzchen picture Drachenkaetzchen  ·  11Commentaires

Gasman2014 picture Gasman2014  ·  26Commentaires