Partkeepr: Problemas al configurar Octopart en v1.2.0

Creado en 16 feb. 2017  ·  11Comentarios  ·  Fuente: partkeepr/PartKeepr

Información del sistema

  • Versión PartKeepr: v1.2.0
  • Reproducible en el sistema de demostración: No (ya que no tengo la capacidad de modificar la configuración en el sistema de demostración y la integración de Octopart parece estar funcionando allí).

Como reproducir

Tengo una comprensión muy limitada de cómo se introduce la clave API de Octopart en el sistema, por lo que estoy haciendo algunas suposiciones mientras escribo esto (algunas de las cuales pueden ser incorrectas), así que tengan paciencia conmigo. Además, usaré 'xxxxxxxx' en lugar de mi clave API real de Octopart en este informe de error.

Me encontré con un problema al intentar configurar el soporte de Octopart para mi instalación de PartKeepr v1.2.0. Comencé simplemente siguiendo las instrucciones en la aplicación / config / parameters.php.dist, que dicen establecer la propiedad de la API de Octopart en el archivo parameters.php:

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

Hacer esto pareció no tener ningún efecto y no habilitó el soporte de Octopart en PartKeepr. Finalmente, volví y ejecuté la web / configuración nuevamente, que luego falló en el paso "Recuperar la configuración existente" con el mensaje de error "Clave de autenticación no válida". Por capricho, configuro la propiedad partkeepr.octopart.apikey de la siguiente manera:

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

Luego volví a ejecutar la herramienta web / de configuración y pude pasar con éxito el paso "Recuperar la configuración existente" sin ningún error y luego pude continuar con el resto del proceso de configuración con éxito; sin embargo, después de volver a iniciar sesión en PartKeepr, abrir la ventana de detalles de un elemento y hacer clic en el botón Octopart, apareció la ventana Octopart pero estaba completamente vacía (tenga en cuenta que no se muestran mensajes de error en la interfaz de usuario). Un vistazo rápido al partkeepr. log mostró el siguiente error:

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

En el mensaje de registro anterior, el problema parece ser un problema con la verificación / validación de Apikey de la web / configuración. Parecería que el proceso necesita el extremo completo de la URL de Octopart (con el apikey incluido como parámetro de URL) para poder ser validado; sin embargo, PartKeepr solo quiere la cadena apikey independiente especificada en tiempo de ejecución para la sustitución, lo que tiene sentido ya que la URL de la API se especifica en la const OCTOPART_ENDPOINT en /src/PartKeepr/OctoPartBundle/Services/OctoPartService.php.

La solución para esto (al menos la que utilicé por el momento) es dejar el extremo completo de la API de Octopart (con la clave de API incluida como parámetro de URL) en los parámetros.php para el proceso de configuración, que parece ser necesario completar con éxito para convencer a PartKeepr de que el soporte de Octopart está habilitado. Luego modifiqué el archivo /src/PartKeepr/OctoPartBundle/Services/OctoPartService.php asignando el apiKey a un literal de cadena, que representa mi clave API de Octopart (como se muestra a continuación):

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

Creo que la solución para esto es corregir la validación de la clave API en la utilidad web / configuración, pero no estoy seguro. Mis disculpas si he entendido mal algo o cómo funciona todo este proceso.

¡Salud!

Comentario más útil

¡Hola!
Tuve un problema con la integración de Octopart en. Inserté mi clave API en parámetros, php, ejecuté setupa nuevamente, pero el robo de búsqueda de Octopart no funcionó. Así que seguí el consejo de @tracklogic y eliminé el caché:
sudo rm -rf app / cache / *
Luego volví a ejecutar la configuración, ¡y ahora todo funciona!

Todos 11 comentarios

Como varias personas configuran la integración de OctoPart, no creo que la implementación sea incorrecta, sino su clave API.

Creo que sé cuál es el problema.

El programa de instalación no verifica la clave API de OctoPart. Lo que lo lleva a la suposición de que necesitaría ingresar el URI de OctoPart completo en lugar de la clave en sí, lo que luego causa un error al recuperar los datos.

Invalid Authentication Key se muestra si la clave en app/authkey.php no es igual a la que ingresó.

También tuve problemas para instalar Octopart.
Lo que hice fue volver a ejecutar el proceso de configuración (después de que se haya guardado la clave API). Entonces la búsqueda de Octopart funcionó como se esperaba.

He hecho esto antes ... almacena la clave OctoPart (o la falta de ella) en algún lugar del directorio de caché; acabo de eliminar la carpeta de caché y actualicé PartKeepr y descubrí que ahora había especificado una clave OctoPart - bit de rascarse la cabeza por un tiempo, ¡ya que me decía que no había especificado uno en parameters.php cuando lo hice!

@WickedAx ¿ puede proporcionar comentarios adicionales?

Sin comentarios, cierre

Sin comentarios durante un período prolongado de tiempo, cerrando el problema.

No dude en volver a abrir si tiene información adicional.

¡Hola!
Tuve un problema con la integración de Octopart en. Inserté mi clave API en parámetros, php, ejecuté setupa nuevamente, pero el robo de búsqueda de Octopart no funcionó. Así que seguí el consejo de @tracklogic y eliminé el caché:
sudo rm -rf app / cache / *
Luego volví a ejecutar la configuración, ¡y ahora todo funciona!

El mismo problema, eliminar el caché como se mencionó ya funcionó.

Probé los trucos anteriores, eliminé el caché y volví a ejecutar la configuración.
Creo que mi problema es con mi clave API de octopart, Octopart tiene la clave API listada junto al texto que dice

Se está revisando su solicitud de una clave API de Octopart.

Me parece extraño emitir una clave de API inactiva, espero que este sea el problema que tengo.
Sería bueno tener alguna técnica o un mensaje de error mejor informando por qué ha fallado la llamada a la API.

¿Hay alguna forma de activar la depuración o cualquier otro archivo de registro que no sean los registros de Apache?

@lhovo El comentario también indica que debe comunicarse con [email protected] si tiene preguntas. Por ejemplo; si está bajo revisión durante demasiado tiempo; contáctales. No funcionará hasta que ya no esté bajo revisión.

¿Fue útil esta página
0 / 5 - 0 calificaciones

Temas relacionados

olewolf picture olewolf  ·  18Comentarios

kgabryszewska picture kgabryszewska  ·  8Comentarios

HolgerHeckeroth picture HolgerHeckeroth  ·  4Comentarios

dani2bunny picture dani2bunny  ·  24Comentarios

baradhili picture baradhili  ·  17Comentarios