Wiem tylko tyle, że należy skorzystać z WebApi Allegro. Ale chciałbym się zorientować, czy jest to skomplikowane w napisaniu? Czy ktoś już coś takiego napisał? Czy wszystko idzie znaleźć w tej dokumentacji? Może znajdzie się ktoś kto nakieruje co trzeba zrobić etapowo?
Znalazłem kod odpowiedzialny za łączenie z Allegro:
<?php class AllegroWebAPISoapClient extends SoapClient { // jedynka to kod kraju dla Polski, o tym dalej const COUNTRY_PL = 1; const QUERY_ALLEGROWEBAPI = 1; public function __construct() { parent::__construct('http://webapi.allegro.pl/uploader.php?wsdl'); } } // pobieramy nasz klucz wersji // łączymy się z Allegro WebAPI $client = new AllegroWebAPISoapClient(); // w ten sposób zadbamy, aby ewentualny błąd nie narobił szkód try { try { // próba logowania $session = $client->doLoginEnc(ALLEGRO_LOGIN, base64_encode( hash('sha256', ALLEGRO_PASSWORD, true) ), ALLEGRO_COUNTRY, ALLEGRO_KEY, $allegroVerKey); } catch(SoapFault $error) { // błąd niepoprawnego klucza wersji pozwala nam zauważyć fakt iż coś w serwisie się zmieniło if($error->faultcode == 'ERR_INVALID_VERSION_CAT_SELL_FIELDS') { // pobieramy aktualny klucz wersji $version = $client->doQuerySysStatus(AllegroWebAPISoapClient::QUERY_ALLEGROWEBAPI, ALLEGRO_COUNTRY, ALLEGRO_KEY); $allegroVerKey = $version['ver-key']; /* tutaj wykonujemy swoje operacje uaktualniające */ // zapisujemy klucz wersji do pliku file_put_contents('.verkey', $allegroVerKey); // ponowna próba logowania, już z nowym kluczem $session = $client->doLoginEnc(ALLEGRO_LOGIN, base64_encode( hash('sha256', ALLEGRO_PASSWORD, true) ), ALLEGRO_COUNTRY, ALLEGRO_KEY, $allegroVerKey); } // każdy inny błąd to już poważny problem else { throw $error; } } // udało nam się zalogować } catch(SoapFault $error) { } ?>
Niestety powyższy kod zwraca mi komunikat: Błąd ERR_WEBAPI_KEY: Niepoprawna wartość klucza WebAPI lub klucz został zablokowany.
O co chodzi ?