Partkeepr: Problemas ao configurar o Octopart na v1.2.0

Criado em 16 fev. 2017  ·  11Comentários  ·  Fonte: partkeepr/PartKeepr

Informação do sistema

  • Versão PartKeepr: v1.2.0
  • Reproduzível no sistema de demonstração: Não (pois não tenho a capacidade de modificar a configuração no sistema de demonstração e a integração Octopart parece estar funcionando lá).

Como reproduzir

Eu tenho uma compreensão muito limitada de como a chave da API Octopart é inserida no sistema, então estou fazendo algumas suposições enquanto escrevo isto (algumas das quais podem estar incorretas), por favor, tenha paciência comigo. Além disso, estarei usando 'xxxxxxxx' no lugar da minha chave de API Octopart real neste relatório de bug.

Tive um problema ao tentar configurar o suporte Octopart para minha instalação do PartKeepr v1.2.0. Comecei simplesmente seguindo as instruções em app / config / parameters.php.dist, que dizem para definir a propriedade Octopart API no arquivo parameters.php:

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

Fazer isso parecia não ter efeito e não ativava o suporte Octopart no PartKeepr. Por fim, voltei e executei a web / configuração novamente, que falhou na etapa "Recuperando a configuração existente" com a mensagem de erro "Chave de autenticação inválida". Por capricho, defini a propriedade partkeepr.octopart.apikey da seguinte maneira:

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

Em seguida, executei novamente a ferramenta da web / configuração e consegui passar com êxito a etapa "Recuperando a configuração existente" sem erros e, em seguida, consegui continuar com o resto do processo de configuração com êxito; no entanto, após fazer o login novamente no PartKeepr, abrir a janela de detalhes de um item e clicar no botão Octopart, a janela Octopart apareceu, mas estava completamente vazia (observe que não havia mensagens de erro exibidas na IU). Uma rápida olhada no partkeepr. log mostrou o seguinte erro:

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

A partir da mensagem de log acima, o problema parece ser um problema com a verificação / validação de apikey da web / configuração. Parece que o processo precisa do endpoint de URL Octopart completo (com o apikey incluído como um parâmetro de URL) para ser validado; no entanto, o próprio PartKeepr deseja apenas a string apikey autônoma especificada no tempo de execução para substituição, o que faz sentido, já que a URL para a API é especificada no const OCTOPART_ENDPOINT em /src/PartKeepr/OctoPartBundle/Services/OctoPartService.php.

A solução alternativa para isso (pelo menos a que usei por enquanto) é deixar o endpoint completo da API Octopart (com a chave API incluída como um parâmetro de URL) em parameters.php para o processo de configuração, que parece precisar concluído com êxito para convencer o PartKeepr de que o suporte ao Octopart está ativado. Em seguida, modifiquei o arquivo /src/PartKeepr/OctoPartBundle/Services/OctoPartService.php atribuindo a apiKey a um literal de string, representando minha chave de API Octopart (conforme mostrado abaixo):

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

Acho que a solução para isso é corrigir a validação da chave API no utilitário web / setup, mas não tenho certeza. Minhas desculpas se eu entendi algo errado ou como todo esse processo funciona.

Saúde!

Comentários muito úteis

Oi!
Tive problemas com a integração do Octopart para. Inseri minha chave de API em parâmetros, php, executei setupa novamente, mas o roubo de pesquisa Octopart não funcionou. Então eu folowed 's conselho @tracklogic e delted o cache:
sudo rm -rf app / cache / *
Então executei a configuração novamente e agora tudo funciona!

Todos 11 comentários

Como várias pessoas configuraram a integração OctoPart, não acredito que a implementação esteja errada, mas sim a sua chave API.

Acho que sei qual é o problema.

A instalação não verifica a chave de API OctoPart. O que leva você a supor que será necessário inserir o URI completo do OctoPart em vez da própria chave, o que causa um erro ao recuperar os dados.

Invalid Authentication Key é exibido se a chave em app/authkey.php não for igual à que você digitou.

Também tive problemas ao instalar o Octopart.
O que fiz foi executar novamente o processo de instalação (depois que a chave API foi salva). Em seguida, a pesquisa Octopart funcionou como pretendido.

Eu fiz isso antes ... ele armazena a chave OctoPart (ou a falta dela) em algum lugar no diretório de cache - eu apenas apaguei a pasta de cache e atualizei o PartKeepr e ele percebeu que agora eu tinha especificado uma chave OctoPart - bit de headscratching por um tempo, pois ele estava me dizendo que eu não tinha especificado nenhum em parameters.php quando o fiz!

@WickedAx você pode fornecer comentários adicionais?

Nenhum feedback dado, fechando

Nenhum feedback fornecido por um longo período de tempo, encerrando o problema.

Sinta-se à vontade para reabrir se você tiver informações adicionais.

Oi!
Tive problemas com a integração do Octopart para. Inseri minha chave de API em parâmetros, php, executei setupa novamente, mas o roubo de pesquisa Octopart não funcionou. Então eu folowed 's conselho @tracklogic e delted o cache:
sudo rm -rf app / cache / *
Então executei a configuração novamente e agora tudo funciona!

Mesmo problema, excluir o cache conforme mencionado já resolveu.

Tentei os truques acima, excluindo o cache e executando a instalação novamente.
Acho que meu problema é com minha chave de API de octopart, Octopart tem a chave de API listada ao lado do texto que diz

Sua solicitação de uma chave Octopart API está sendo analisada.

Parece-me estranho emitir uma chave de API inativa, espero que seja esse o problema que estou tendo.
Seria bom ter alguma técnica ou mensagem de erro melhor informando sobre o motivo da falha na chamada de API.

Existe alguma maneira de ativar a depuração ou quaisquer outros arquivos de log que não sejam os logs do apache?

@lhovo O comentário também afirma que você deve entrar em contato com [email protected] se tiver dúvidas. Por exemplo; se estiver sob revisão por muito tempo; Contate-os. Não funcionará até que não esteja mais sob revisão.

Esta página foi útil?
0 / 5 - 0 avaliações

Questões relacionadas

gfarcas picture gfarcas  ·  20Comentários

christianlupus picture christianlupus  ·  55Comentários

Drachenkaetzchen picture Drachenkaetzchen  ·  11Comentários

Gasman2014 picture Gasman2014  ·  26Comentários

kgabryszewska picture kgabryszewska  ·  8Comentários