Octopart API ν€κ° μμ€ν μ νΈμλλ λ°©μμ λν΄ λ§€μ° μ νμ μΌλ‘ μ΄ν΄νκ³ μμΌλ―λ‘ μ΄ κΈμ μμ±νλ©΄μ λͺ κ°μ§ κ°μ μ νκ³ μμ΅λλ€(μΌλΆλ μ ννμ§ μμ μ μμ). μν΄ν΄ μ£Όμμμ€. λν μ΄ λ²κ·Έ λ³΄κ³ μμμ μ€μ Octopart API ν€ λμ 'xxxxxxxx'λ₯Ό μ¬μ©ν κ²μ λλ€.
PartKeepr v1.2.0 μ€μΉλ₯Ό μν΄ Octopart μ§μμ μ€μ νλ €κ³ μλνλ λμ λ¬Έμ κ° λ°μνμ΅λλ€. λλ λ¨μν parameters.php νμΌμμ Octopart API μμ±μ μ€μ νλΌλ app/config/parameters.php.distμ μ§μΉ¨μ λ°λΌ μμνμ΅λλ€.
$container->setParameter('partkeepr.octopart.apikey',
'xxxxxxxx')`
μ΄λ κ² ν΄λ μ무 ν¨κ³Όκ° μλ κ² κ°μκ³ PartKeeprμμ Octopart μ§μμ νμ±ννμ§ λͺ»νμ΅λλ€. κ²°κ΅ μΉ/μ€μ μ λ€μ μ€ννλλ° "κΈ°μ‘΄ κ΅¬μ± κ²μ" λ¨κ³μμ "μλͺ»λ μΈμ¦ ν€"λΌλ μ€λ₯ λ©μμ§μ ν¨κ» μ€ν¨νμ΅λλ€. λ³λμ€λ½κ² λλ partkeepr.octopart.apikey μμ±μ λ€μκ³Ό κ°μ΄ μ€μ νμ΅λλ€.
$container->setParameter('partkeepr.octopart.apikey',
'https://octopart.com/api/v3/parts/match?apikey='xxxxxxxx')`
κ·Έλ° λ€μ μΉ/μ€μ λꡬλ₯Ό λ€μ μ€ννμ¬ μ€λ₯ μμ΄ "κΈ°μ‘΄ κ΅¬μ± κ²μ" λ¨κ³λ₯Ό μ±κ³΅μ μΌλ‘ ν΅κ³Όν μ μμκ³ λλ¨Έμ§ μ€μ νλ‘μΈμ€λ₯Ό μ±κ³΅μ μΌλ‘ κ³μν μ μμμ΅λλ€. κ·Έλ¬λ PartKeeprμ λ€μ λ‘κ·ΈμΈνμ¬ νλͺ©μ λν μΈλΆ μ 보 μ°½μ νμνκ³ Octopart λ²νΌμ ν΄λ¦νλ©΄ Octopart μ°½μ΄ λνλμ§λ§ μμ ν λΉμ΄ μμ΅λλ€(UIμ μ€λ₯ λ©μμ§κ° νμλμ§ μμμ μ μ). partkeeprμ λν κ°λ΅ν μ΄ν΄λ³΄κΈ°. λ‘κ·Έμ λ€μ μ€λ₯κ° νμλμμ΅λλ€.
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)"} []
μμ λ‘κ·Έ λ©μμ§μμ λ¬Έμ λ μΉ/μ€μ μ apikey νμΈ/κ²μ¦μ λ¬Έμ κ° μλ κ²μΌλ‘ 보μ λλ€. νλ‘μΈμ€μ μ ν¨μ±μ κ²μ¬νλ €λ©΄ μ 체 Octopart URL λμ (URL 맀κ°λ³μλ‘ ν¬ν¨λ apikey ν¬ν¨)μ΄ νμν κ² κ°μ΅λλ€. κ·Έλ¬λ PartKeepr μ체λ λ체λ₯Ό μν΄ λ°νμμ μ§μ λ λ 립ν apikey λ¬Έμμ΄λ§ μν©λλ€. μ΄λ APIμ URLμ΄ /src/PartKeepr/OctoPartBundle/Services/OctoPartService.phpμ const OCTOPART_ENDPOINTμ μ§μ λμ΄ μκΈ° λλ¬Έμ μλ―Έκ° μμ΅λλ€.
μ΄μ λν ν΄κ²° λ°©λ²(μ μ΄λ λΉλΆκ°μ μ¬μ©)μ μ€μ νλ‘μΈμ€λ₯Ό μν΄ parameters.phpμ μ 체 Octopart API μλν¬μΈνΈ(API ν€κ° URL 맀κ°λ³μλ‘ ν¬ν¨λ¨)λ₯Ό λ¨κ²¨λλ κ²μ λλ€. Octopart μ§μμ΄ νμ±νλμ΄ μμμ PartKeeprμ νμ μν€κΈ° μν΄ μ±κ³΅μ μΌλ‘ μλ£νμμμ€. κ·Έλ° λ€μ apiKeyλ₯Ό λ΄ Octopart API ν€λ₯Ό λνλ΄λ λ¬Έμμ΄ λ¦¬ν°λ΄μ ν λΉνμ¬ /src/PartKeepr/OctoPartBundle/Services/OctoPartService.php νμΌμ μμ νμ΅λλ€(μλ μ°Έμ‘°).
public function __construct($apiKey)
{
$this->apiKey = "xxxxxxxx";
}
μ΄μ λν μμ μ μΉ/μ€μ μ νΈλ¦¬ν°μμ API ν€μ μ ν¨μ± κ²μ¬λ₯Ό μμ νλ κ²μ΄λΌκ³ μκ°νμ§λ§ νμ€νμ§ μμ΅λλ€. λ΄κ° λκ°λ₯Ό μλͺ» μ΄ν΄νκ±°λ μ΄ νλ‘μΈμ€κ° μ΄λ»κ² μλνλμ§ μ¬κ³Όλ립λλ€.
건배!
μ¬λ¬ μ¬λμ΄ OctoPart ν΅ν©μ μ€μ ν¨μ λ°λΌ ꡬνμ΄ μλͺ»λμλ€κ³ μκ°νμ§ μκ³ API ν€κ° μλͺ»λμλ€κ³ μκ°ν©λλ€.
λ¬Έμ κ° λμ§ μ κ² κ°μμ.
μ€μΉ νλ‘κ·Έλ¨μ OctoPart API ν€λ₯Ό νμΈνμ§ μμ΅λλ€. λ°λΌμ ν€ μ체 λμ μ 체 OctoPart URIλ₯Ό μ λ ₯ν΄μΌ νλ©°, κ·Έλ¬λ©΄ λ°μ΄ν° κ²μ μ€λ₯κ° λ°μνλ€κ³ κ°μ ν©λλ€.
Invalid Authentication Key
μ ν΅μ¬ κ²½μ° νμ app/authkey.php
μ
λ ₯ ν κ²κ³Ό λμΌνμ§ μμ΅λλ€.
Octopartλ₯Ό μ€μΉνλ λ°μλ λ¬Έμ κ° μμμ΅λλ€.
λ΄κ° ν κ²μ μ€μ νλ‘μΈμ€λ₯Ό λ€μ μ€ννλ κ²μ
λλ€(API ν€κ° μ μ₯λ ν). κ·Έλ° λ€μ Octopart κ²μμ΄ μλν λλ‘ μλνμ΅λλ€.
λλ μ΄κ²μ μ μ ... μΊμ λλ ν 리 μ΄λκ°μ OctoPart ν€ (λλ κ·Έκ²μ λΆμ‘±)λ₯Ό μ μ₯ν©λλ€ - λ°©κΈ μΊμ ν΄λλ₯Ό μμ νκ³ PartKeeprμ μλ‘ κ³ μ³€κ³ μ΄μ OctoPart ν€λ₯Ό μ§μ νμμ μμμ΅λλ€ - λΉνΈ λ΄κ° κ°μ‘μ λ λλ parameters.phpμ νλλ₯Ό μ§μ νμ§ μμλ€κ³ λ§νλ©΄μ μ μ λμ 머리λ₯Ό κΈμ μμ΅λλ€!
@WickedAx μΆκ° νΌλλ°±μ μ 곡ν μ μμ΅λκΉ?
νΌλλ°± μμ, μ’ λ£
μ€λ κΈ°κ° λμ νΌλλ°±μ΄ μ 곡λμ§ μμ λ¬Έμ κ° μ’ λ£λμμ΅λλ€.
μΆκ° μ λ³΄κ° μμΌλ©΄ μΈμ λ μ§ λ€μ μ¬μμμ€.
μλ
νμΈμ!
Octopart ν΅ν©μ λ¬Έμ κ° μμμ΅λλ€. λ΄ API ν€λ₯Ό php 맀κ°λ³μμ μ½μ
νκ³ setupaλ₯Ό λ€μ μ€ννμ§λ§ Octopart κ²μ λμ©μ΄ μλνμ§ μμμ΅λλ€. κ·Έλμ λ΄κ° @tracklogicμ μ‘°μΈμ folowed μΊμλ₯Ό delted :
sudo rm -rf μ±/μΊμ/*
κ·Έλ° λ€μ μ€μ μ λ€μ μ€ννκ³ μ΄μ λͺ¨λ κ²μ΄ μλν©λλ€!
λμΌν λ¬Έμ , μΈκΈν λλ‘ μΊμλ₯Ό μμ νλ©΄ μ΄λ―Έ νΈλ¦μ μννμ΅λλ€.
μΊμλ₯Ό μμ νκ³ μ€μ μ λ€μ μ€ννμ¬ μμ νΈλ¦μ μλνμ΅λλ€.
λ΄ λ¬Έμ λ λ΄ octopart API ν€μ μλ€κ³ μκ°ν©λλ€. Octopartμλ λ€μκ³Ό κ°μ ν
μ€νΈ μμ API ν€κ° λμ΄λμ΄ μμ΅λλ€.
Octopart API ν€ μμ²μ κ²ν μ€μ λλ€.
λΉνμ± API ν€λ₯Ό λ°ννλ κ²μ΄ μ΄μνκ² λκ»΄μ§λλ€. λ°λΌκ±΄λ μ΄κ²μ΄ μ κ° κ²ͺκ³ μλ λ¬Έμ μ
λλ€.
API νΈμΆμ΄ μ€ν¨ν μ΄μ λ₯Ό μλ €μ£Όλ λͺ κ°μ§ κΈ°μ μ΄λ λ λμ μ€λ₯ λ©μμ§κ° μμΌλ©΄ μ’μ κ²μ
λλ€.
μνμΉ λ‘κ·Έ μ΄μΈμ λ€λ₯Έ λ‘κ·Έ νμΌμ΄λ λλ²κΉ μ μΌλ λ°©λ²μ΄ μμ΅λκΉ?
@lhovo λν μ§λ¬Έμ΄ μλ κ²½μ° [email protected] μ λ¬Έμ
κ°μ₯ μ μ©ν λκΈ
μλ νμΈμ!
Octopart ν΅ν©μ λ¬Έμ κ° μμμ΅λλ€. λ΄ API ν€λ₯Ό php 맀κ°λ³μμ μ½μ νκ³ setupaλ₯Ό λ€μ μ€ννμ§λ§ Octopart κ²μ λμ©μ΄ μλνμ§ μμμ΅λλ€. κ·Έλμ λ΄κ° @tracklogicμ μ‘°μΈμ folowed μΊμλ₯Ό delted :
sudo rm -rf μ±/μΊμ/*
κ·Έλ° λ€μ μ€μ μ λ€μ μ€ννκ³ μ΄μ λͺ¨λ κ²μ΄ μλν©λλ€!