Witam Panowie, zastanawiam się nad napisaniem skryptu który by automatycznie wystawiał aukcję allegro poprzez php (CRON).
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
define('ALLEGRO_LOGIN', 'login z allegro'); define('ALLEGRO_PASSWORD', 'haslo z allegro'); define('ALLEGRO_KEY', 'wygenerowany klucz webapi'); define('ALLEGRO_COUNTRY', AllegroWebAPISoapClient
::COUNTRY_PL);
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ć
echo 'Logowanie poprawne. Uzyskany klucz sesji to: ', $session['session-handle-part']; }
catch(SoapFault $error)
{
echo 'Błąd ', $error->faultcode, ': ', $error->faultstring, "n"; }
?>
Niestety powyższy kod zwraca mi komunikat: Błąd ERR_WEBAPI_KEY: Niepoprawna wartość klucza WebAPI lub klucz został zablokowany.
O co chodzi ?
Ten post edytował casperii 30.06.2015, 21:41:49