Allegro WebAPI

Interfejs programistyczny platformy Allegro

doLogin

Tematyka: Logowanie
Ostatnia zmiana: 04.09.2012 r.
Dostępność:
Metoda pozwala na uwierzytelnienie i autoryzację użytkownika za pomocą danych dostępowych do konta (loginu lub adresu e-mail i hasła). Po pomyślnym uwierzytelnieniu, użytkownik otrzymuje identyfikator sesji, którym następnie może posłużyć się przy wywoływaniu metod wymagających autoryzacji. Identyfikator sesji zachowuje ważność przez jedną godzinę od momentu jego utworzenia.

  1. user-login | string | wymagany
    Nazwa (1-16 znaków) lub e-mail użytkownika.
  2. user-password | string | wymagany
    Hasło użytkownika (6-16 znaków).
  3. country-code | int | wymagany
    Identyfikator kraju (listę identyfikatorów krajów uzyskać można za pomocą metody doGetCountries).
  4. webapi-key | string | wymagany
    Klucz WebAPI użytkownika.
  5. local-version | long | wymagany
    Klucz wersji, odpowiedni dla wybranego kraju i przekazanego klucza WebAPI.



Orientacyjna struktura wywołania metody

$dologin_request = array(
   'user-login' => 'm010ch',
   'user-password' => 'mojetajnehasło',
   'country-code' => 1,
   'webapi-key' => 'g2fe408289',
   'local-version' => 16551276
);

  1. session-handle-part |  string
    Identyfikator sesji.
  2. user-id | long
    Identyfikator zalogowanego użytkownika.
  3. server-time |  long
    Aktualny czas na serwerze (w formacie Unix time).



    Orientacyjna struktura odpowiedzi serwera

    $dologin_response = array(
       'session-handle-part' => '22eb99326c6be29aa16d07d622bcfbcbee94ad54846f2f4e03_1',
       'user-id' =>
    4109848,
       'server-time' => 1269814134
    );


    • ERR_AUTHORIZATION_ERROR
      Wskazane konto zostało zamknięte i nie ma możliwości zalogowania się na nie.
    • ERR_CAPTCHA_REQUIRED
      Dostęp przez WebAPI dla użytkownika został zablokowany z powodu zbyt dużej liczby błędnych logowań na konto. Odblokowanie dostępu nastąpi dopiero po poprawnym zalogowaniu się wskazanego użytkownika z poziomu serwisu WWW: https://ssl.allegro.pl/enter_login.php?captcha=1.
    • ERR_INPUT_COUNTRY_ERROR
      Niepoprawny identyfikator kraju (wskazany kraj nie jest obsługiwany lub w parametrze przekazano zerową/pustą wartość).
    • ERR_INVALID_VERSION_CAT_SELL_FIELDS
      Niepoprawna wartość klucza wersji (więcej).
    • ERR_JUNIOR_CANT_LOGIN_IN_THIS_COUNTRY
      Użytkownik konta Junior nie może się logować do wskazanego kraju.
    • ERR_LICENCE_EXPIRED_OR_CLOSED
      Dla podanego klucza API włączony został mechanizm licencjonowania, a użytkownik wywołujący metodę nie jest na liście użytkowników dopuszczonych do korzystania z niego.
    • ERR_NO_DATABASE
      Problemy z bazą danych Allegro.
    • ERR_NO_SESSION
      Problemy z mechanizmem autoryzacji lub użytkownik rozwiązał umowę z serwisem.
    • ERR_PASSWORD_TOO_EASY
      Ze względów bezpieczeństwa prosimy o stworzenie nowego hasła, które zabezpieczać będzie dostęp do Twojego konta w Allegro. W celu dokonania niezbędnych zmian zaloguj się w serwisie, a następnie postępuj według wyświetlanych instrukcji.
    • ERR_SM_MIGRATION_IN_PROGRESS
      W trakcie migracji konta do Menedżera Sprzedaży nie ma możliwości zalogowania się na nie.
    • ERR_USER_PASSWD
      Niepoprawne hasło.
    • ERR_WEBAPI_EXPIRED
      Data ważności klucza WebAPI została przekroczona.
    • ERR_WEBAPI_KEY
      Niepoprawna wartość klucza WebAPI lub klucz został zablokowany.
    • ERR_WEBAPI_KEY_INACTIVE
      Klucz WebAPI został zdezaktywowany (nie zaakceptowano warunków Regulaminu WebAPI).
    • ERR_WEBAPI_NOT_AVAIL
      Problemy z usługą Allegro WebAPI.

    Allegro nie bierze odpowiedzialności za skutki wykorzystania zamieszczonych przykładów kodu, nie daje także gwarancji ich poprawnego działania. Widoczny kod ma charakter wyłącznie poglądowy i może zawierać błędy.

    #1 (06.05.2010 r.) / php (Autor: web-api)
    1. <?php
    2. require_once 'nusoap.php';
    3.  
    4. $msg = array
    5. (
    6. "user-login" => "login Allegro",
    7. "user-password" => "hasło Allegro",
    8. "country-code" => "1", // dla testallegro 228
    9. "webapi-key" => "klucz WebAPI",
    10. "local-version" => "wersja lokalna", //do sprawdzenia za pomoc metody doQuerySysStatus()
    11. );
    12.  
    13.  
    14. $client = new SoapClient('http://webapi.allegro.pl/uploader.php?wsdl', true);
    15. $client->soap_defencoding = 'UTF-8';
    16. $client->decode_utf8 = false;
    17. $response = $client->call("doLogin", $msg);
    18. ?>
    #2 (26.09.2010 r.) / c# (Autor: PeJoteR)
    1. string result = "";
    2. srWebApi.AllegroWebApiPortTypeClient aac = new srWebApi.AllegroWebApiPortTypeClient();
    3. usrLogin = "mojLogin";
    4. usrPass = "mojeHaslo";
    5. webApiKey = "mojKluczAPI";
    6. countryCode = 1;
    7. try
    8. {
    9. long verkey;
    10. string appVer = aac.doQuerySysStatus(out verkey, 2, countryCode, webApiKey);
    11. result = aac.doLogin(out userId, out serverTime, usrLogin, usrPass, countryCode, webApiKey, verkey);
    12. }
    #3 (20.03.2012 r.) / c# (Autor: adrzet)
    1. long hashoffset = 0; long serverTime = 0;
    2.  
    3. conn = new SqlConnection(CS);
    4. conn.Open();
    5.  
    6. string query = "select * from dbo.KontaAllegro";
    7. //TABELA w postaci Login, Haslo, KluczWebApi
    8.  
    9. SqlCommand command = new SqlCommand(query, conn);
    10. SqlDataReader reader = command.ExecuteReader();
    11.  
    12. while (reader.Read())
    13. {
    14. try
    15. {
    16. string KontoLogin = reader["KontoLogin"].ToString();
    17. string KontoHaslo = reader["KontoHaslo"].ToString();
    18. KontoWebApiKey = reader["KontoWebApiKey"].ToString();
    19.  
    20. SysStatusType[] sst = service.doQueryAllSysStatus(1, KontoWebApiKey);
    21.  
    22. if (KontoLogin == "kontotestwebapi") //jesli chcemy korzystac z testwebapi podajemy countrycode = 228 oraz localversion = sst[8].verkey
    23. {
    24. sessionHandle =
    25. service.doLogin(KontoLogin, KontoHaslo, 228, KontoWebApiKey, sst[8].verkey, out hashoffset, out serverTime);
    26. }
    27. else //zwykle konta
    28. {
    29. sessionHandle =
    30. service.doLogin(KontoLogin, KontoHaslo, 1, KontoWebApiKey, sst[0].verkey, out hashoffset, out serverTime);
    31. }
    32.  
    33. sessionHandles.Add(sessionHandle);
    34.  
    35. }
    36. catch (Exception E)
    37. {
    38. File.AppendAllText(System.Windows.Forms.Application.ExecutablePath.Replace(".exe", ".log"), "Błąd logowania: " + E.Message);
    39. }
    40.  
    41. }
    42.  
    43. reader.Close();
    #4 (09.12.2013 r.) / delphi (Autor: Dahlia)
    1. var
    2. _DoLoginRequest : DoLoginRequest;
    3. _doLoginResponse : doLoginResponse;
    4. _DoQuerySysStatusRequest : DoQuerySysStatusRequest;
    5. _doQuerySysStatusResponse : doQuerySysStatusResponse;
    6. _webapiKey : string;
    7. begin
    8. _webapiKey := '******';
    9. GetservicePort(True,'',httprio);
    10. _DoQuerySysStatusRequest := DoQuerySysStatusRequest.Create;
    11. _DoQuerySysStatusRequest.sysvar := 1;
    12. _DoQuerySysStatusRequest.countryId := 1;
    13. _DoQuerySysStatusRequest.webapiKey := _webapiKey;
    14. _doQuerySysStatusResponse := ( httprio as servicePort).doQuerySysStatus(_DoQuerySysStatusRequest);
    15.  
    16. _DoLoginRequest := DoLoginRequest.Create;
    17. _DoLoginRequest.userLogin := '******';
    18. _DoLoginRequest.userPassword := '******';
    19. _DoLoginRequest.countryCode := 1;
    20. _DoLoginRequest.webapiKey := _webapiKey;
    21. _DoLoginRequest.localVersion := _doQuerySysStatusResponse.verKey;
    22.  
    23. _doLoginResponse := ( httprio as servicePort).doLogin(_DoLoginRequest);
    24. end;
    #5 (24.04.2014 r.) / java (Autor: specc8320)
    1. /**
    2. * Metoda umnożliwiająca logowanie do serwisu allegro
    3. * @param userLogin - parametr określający nazwe użytkownika w Allegro
    4. * @param userPassword - parametr określający hasło w Allegro
    5. * @param countryCode - parametr określający kraj (Dla pl 1)
    6. * @param localVersion - parametr określający wersję aplikcji
    7. * @param webApiKey - parametr określający klucz webApi
    8. * @return
    9. */
    10. public boolean doLogin(String userLogin, String userPassword, int countryCode, long localVersion, String webApiKey){
    11.  
    12. // Nazwa serwisu który zostaje wygenerowany ze stuba .wsdl domyślnie jest to AllegroService
    13. ServiceService allegroWebApiService = new ServiceService();
    14.  
    15. // Podobnie jak w przypadku serwisu jest to generowane ze stuba .wsdl domyslnie jest to AllegroServicePort
    16. ServicePort allegro = allegroWebApiService.getServicePort();
    17.  
    18. DoLoginRequest doLoginRequest = new DoLoginRequest();
    19. doLoginRequest.setUserLogin(userLogin);
    20. doLoginRequest.setUserPassword(userPassword);
    21. doLoginRequest.setCountryCode(countryCode);
    22. doLoginRequest.setLocalVersion(localVersion);
    23. doLoginRequest.setWebapiKey(webApiKey);
    24.  
    25. DoLoginResponse doLoginResponse = allegro.doLogin(doLoginRequest);
    26. if (doLoginResponse.getSessionHandlePart() != "") {
    27.  
    28. // Identyfikator sesji dla użytkownika jest trzymany w: doLoginResponse.getSessionHandlePart()
    29. return true;
    30. } else {
    31. return false;
    32. }
    33. }
    #6 (02.02.2015 r.) / php (Autor: misiu9091909)
    1. <?php
    2.  
    3. // samo logowanie do nowego WSDL wraz z przykładem prawidłowego podania parametrów. W przeciwieństwie do starego WSDL, tutaj należy podawać tablicę asocjacyjną z parametrami, a nie argumenty jeden za drugim
    4.  
    5. define('LINK', "https://webapi.allegro.pl/service.php?wsdl"); //nowy wsdl
    6. define('LOGIN', 'user123');
    7. define('PASSWORD', 'password123');
    8. define('KEY', '123asd456');
    9. define('COUNTRY', 1);
    10. define('SYSVAR', 1);
    11.  
    12. try {
    13. $client = new SoapClient(LINK);
    14. $version_params = array('sysvar' => SYSVAR, 'countryId' => COUNTRY, 'webapiKey' => KEY);
    15. $version = (array)($client->doQuerySysStatus($version_params));
    16. $session_params = array('userLogin' => LOGIN, 'userPassword' => PASSWORD, 'countryCode' => COUNTRY,
    17. 'webapiKey' => KEY, 'localVersion' => $version['verKey']);
    18. $session = $client->doLogin($session_params);
    19. echo 'Zalogowano poprawnie jako: ', LOGIN;
    20. }
    21. catch(SoapFault $error) {
    22. echo 'Błąd ', $error->faultcode, ': ', $error->faultstring, "n";
    23. }
    24.  
    25. ?>
    #7 (16.06.2016 r.) / php (Autor: anusia1106)
    1. $dologin_request = array(
    2. 'userLogin' => 'anusia1106',
    3. 'userPassword' => 'AnkA11',
    4. 'countryCode' => 1,
    5. 'webapiKey' => '79873048',
    6. 'localVersion' => 16551276
    7. );