Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Allegro WebApi funkcja doAddToBlackList zwraca błąd mimo poprawnego ID
Forum PHP.pl > Forum > PHP
NoWay
Witam!
Mam taki problem. Otóż zacząłem sobie pisać każdą funkcję Allegro WebApi po kolei i napotkałem na problem. Otóż gdy chciałem dodać użytkownika do Black Listy na Allegro pomimo podawania poprawnego ID użytkownika do funkcji, funkcja zawsze zwraca wynik negatywny i nie dodaje go do listy. Oto fragmenty mojego kodu:
  1. $user_login = $_POST['blacklist_name'];
  2. $user_data['0'] = doGetUserID($client, $country_id, $user_login, $webapi_key);
  3. $user_data['1'] = $_POST['blacklist_note'];
  4. doAddToBlackList($client, $session, $user_data);

oraz funkcje które zostały tam użyte:
  1.  
  2. function doGetUserID($client, $country_id, $user_login, $webapi_key)
  3. {
  4. $doGetUserID = $client->doGetUserID($country_id, $user_login, '', $webapi_key);
  5. return $doGetUserID;
  6. }
  7.  
  8.  
  9. function doAddToBlackList ($client, $session, $user_data)
  10. {
  11. $doAddToBlackList = $client->doAddToBlackList($session, $user_data);
  12. echo var_dump($doAddToBlackList);
  13. if ($doAddToBlackList['0']->{'add-to-black-list-result'} == 1)
  14. {
  15. echo '<br><br><br><br><br><br><br><br><center>Pomyślnie dodano uzytkownika na Czarną Listę</center>';
  16. echo '<br><br><br><br><center> <a href = "allegro.php?logged='.encode(1).'&wybor='.encode('blacklist').'&session='.encode($session).'">Powrot</center>';
  17. }
  18. elseif ($doAddToBlackList['0']->{'add-to-black-list-result'} == 0)
  19. {
  20. echo '<br><br><br><br><br><br><br><br><center>Błąd podczas dodawania uzytkownika na Czarną Listę. Oto odpowiedz serwera allegro:</center><br>';
  21. echo '<center>'.$doAddToBlackList['0']->{'add-to-black-list-err-code'}.'<br>'.$doAddToBlackList['0']->{'add-to-black-list-err-msg'}.'</center>';
  22. echo '<br><br><br><br><center> <a href = "allegro.php?logged='.encode(1).'&wybor='.encode('blacklist').'&session='.encode($session).'">Powrot</center>';
  23. }
  24. else
  25. {
  26. echo 'Cos poszlo nie tak, proszę spróbować ponownie.';
  27. }
  28. }

Dodam, że gdy wpiszę użytkownika na listę poprzez stronę i wyświetlę go poprzez metodę doGetBlackListUsers, to ID przy tej nazwie użytkownika jest takie samo jak to podawano poprzez Api.
styryl
Pokaż co Ci zwraca api...
NoWay
Zwraca to:
ERR_USER_NOT_FOUND
Podano niepoprawny identyfikator lub login użytkownika albo taki użytkownik nie istnieje.

I tak jest za każdym razem, nie ważne czy podam prawidłowe ID czy nieprawidłowe.
styryl
Pokaż metodę:

  1. $client->doAddToBlackList


i co masz w $user_data



NoWay
W
  1. $user_data['0']

jest ID loginu, który wpisuje z pola tekstowego, a następnie jest przetwarzany poprzez funkcję doGetUserID (ID jest poprawne, przy wpisaniu loginu i wyświetleniu jego ID jest takie samo jak gdy dodam tego użytkownika na Czarną Listę poprzez stronę i wyświetlę użytkowników na Czarnej Liście). W
  1. $user_data['1']

jest notatka, dlaczego został dodany na Czarną Listę, ten parametr jest nieobowiązkowy.
A
  1. $client->doAddToBlackList

to wywołanie funkcji allegro doAddToBlackList, do
  1. $client

przypisany jest nowy Client SOAP z adresem webapi allegro.
styryl
Skoro jesteś pewien że przekazujesz na 100% poprawne dane to napisz do pomocy allegro.
NoWay
Gdyby ktoś miał podobny problem, to podaje rozwiązanie. Błąd był w tym miejscu:
  1. $user_login = $_POST['blacklist_name'];
  2. $user_data['0'] = doGetUserID($client, $country_id, $user_login, $webapi_key);
  3. $user_data['1'] = $_POST['blacklist_note'];
  4. doAddToBlackList($client, $session, $user_data);

Powinno być tak:
  1. $user_login = $_POST['blacklist_name'];
  2. $user_data[0]->{'user-id'} = doGetUserID($client, $country_id, $user_login, $webapi_key);
  3. $user_data[0]-> {'user-black-list-note'} = $_POST['blacklist_note'];
  4. doAddToBlackList($client, $session, $user_data);
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.