Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Wystawienie aukcji Allegro poprzez PHP
Forum PHP.pl > Forum > Przedszkole
casperii
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:

  1. <?php
  2.  
  3. define('ALLEGRO_LOGIN', 'login z allegro');
  4. define('ALLEGRO_PASSWORD', 'haslo z allegro');
  5. define('ALLEGRO_KEY', 'wygenerowany klucz webapi');
  6. define('ALLEGRO_COUNTRY', AllegroWebAPISoapClient::COUNTRY_PL);
  7.  
  8.  
  9.  
  10. class AllegroWebAPISoapClient extends SoapClient
  11. {
  12. // jedynka to kod kraju dla Polski, o tym dalej
  13. const COUNTRY_PL = 1;
  14.  
  15. const QUERY_ALLEGROWEBAPI = 1;
  16.  
  17. public function __construct()
  18. {
  19. parent::__construct('http://webapi.allegro.pl/uploader.php?wsdl');
  20. }
  21. }
  22.  
  23.  
  24.  
  25.  
  26. // pobieramy nasz klucz wersji
  27. $allegroVerKey = file_get_contents('.verkey');
  28.  
  29. // łączymy się z Allegro WebAPI
  30. $client = new AllegroWebAPISoapClient();
  31.  
  32. // w ten sposób zadbamy, aby ewentualny błąd nie narobił szkód
  33. try
  34. {
  35. try
  36. {
  37. // próba logowania
  38. $session = $client->doLoginEnc(ALLEGRO_LOGIN, base64_encode( hash('sha256', ALLEGRO_PASSWORD, true) ), ALLEGRO_COUNTRY, ALLEGRO_KEY, $allegroVerKey);
  39. }
  40. catch(SoapFault $error)
  41. {
  42. // błąd niepoprawnego klucza wersji pozwala nam zauważyć fakt iż coś w serwisie się zmieniło
  43. if($error->faultcode == 'ERR_INVALID_VERSION_CAT_SELL_FIELDS')
  44. {
  45. // pobieramy aktualny klucz wersji
  46. $version = $client->doQuerySysStatus(AllegroWebAPISoapClient::QUERY_ALLEGROWEBAPI, ALLEGRO_COUNTRY, ALLEGRO_KEY);
  47. $allegroVerKey = $version['ver-key'];
  48.  
  49. /* tutaj wykonujemy swoje operacje uaktualniające */
  50.  
  51. // zapisujemy klucz wersji do pliku
  52. file_put_contents('.verkey', $allegroVerKey);
  53.  
  54. // ponowna próba logowania, już z nowym kluczem
  55. $session = $client->doLoginEnc(ALLEGRO_LOGIN, base64_encode( hash('sha256', ALLEGRO_PASSWORD, true) ), ALLEGRO_COUNTRY, ALLEGRO_KEY, $allegroVerKey);
  56. }
  57. // każdy inny błąd to już poważny problem
  58. else
  59. {
  60. throw $error;
  61. }
  62. }
  63.  
  64. // udało nam się zalogować
  65. echo 'Logowanie poprawne. Uzyskany klucz sesji to: ', $session['session-handle-part'];
  66. }
  67. catch(SoapFault $error)
  68. {
  69. echo 'Błąd ', $error->faultcode, ': ', $error->faultstring, "n";
  70. }
  71.  
  72. ?>


Niestety powyższy kod zwraca mi komunikat: Błąd ERR_WEBAPI_KEY: Niepoprawna wartość‡ klucza WebAPI lub klucz został‚ zablokowany.
O co chodzi ?
Mega_88
Jeżeli chodzi o błąd, który dostajesz to tutaj znajdziesz odpowiedź: http://allegro.pl/webapi

Z allegro nie mam doświadczenie, ale z tego co pamiętam udostępniają też wersję do testowania wszystkiego więc poszukaj sobie i popracuj na testowej.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.