sobota, 4 lutego 2017

Wracam... i JAK wstawić kod na stronę ?

Wracam... Po długiej przerwie. Czas wrócić do publikacji. Mało ich było, ale chcę więcej ;)

I chcę zacząć pisać lepiej, ładniej... nie jakieś wklejki kodu, których nikt nie rozumie, tylko zacząć to robić ... czytelniej...

JAK DO CH#$ERY ŁADNIE WKLEIĆ KOD NA STRONĘ ?

mam konto na github, github ma coś co się gist nazywa... O ! To jest to co potrzebuję !

Wchodzę na https://gist.github.com/
klikam new gist...
filename.... Main.java
content... a wkleje kod programu...

public class Main {

    public static void main(String[] args) {

        System.out.println("Hello World!");
    }
}


zapisz... jest link do embedowania... 
w moim przypadku - <script src="https://gist.github.com/najavie/8fc7a276e1ce18b57c735a2073a472c1.js"></script>

wkleję go w kod html wpisu... 



I świat stał się prostszy :-)

Co więcej - wow, mogę go sobie sklonować jako zwykłe repozytorium gitowe... zmienić co chcę i zmiany się pojawią też na blogu.
KISS :) (Keep It Simple, Stupid)


czwartek, 22 września 2011

Allegro WebAPI

Allegro stworzyło interfejs programistyczny (API), dzięki któremu możemy zrobić bardzo dużo nie wchodząc na stronę allegro.
Jedyne co potrzeba to klucz webapi, który w wersji podstawowej można otrzymać za darmo. Wystarczy posiadanie konta na allegro i wypełnienie formularza.
Baza wiedzy o webapi jest tutaj: http://allegro.pl/webapi/

Dają oni masę instrukcji do php, natomiast praktycznie nic nie ma na temat javy.
Postaram się chociaż trochę opisać temat jak ugryźć WebAPI z Javą.

Po pierwsze środowisko w którym będziemy programować.
Ja lubię Eclipse, i na tym się skupię, ale pewnie bez problemu można to też wykonać w NetBeans albo czymkolwiek innym.

Sam Eclipse nie wystarczy. Ja używam wersji Eclipse for Java EE i ją polecam.
Zakładam, że macie też zainstalowanego Maven'a.

Tworzymy nowy projekt Maven'a, i wybieramy archetyp quickstart


Wybieramy nazwę grupę i nazwę jaka nam przyjdzie do głowy i klikamy finish.
Otwieramy pom.xml - czyli plik konfiguracyjny maven'a i w sekcji dependencies dopisujemy:


    <dependency>
    <groupId>axis</groupId>
    <artifactId>axis</artifactId>
    <version>1.4</version>
    <type>jar</type>
    <scope>compile</scope>
    </dependency>


To nam doda obsługę Axis, który jest niezbędny do pracy z protokołem, który obsługuje allegro.
Teraz najważniejsze - musimy utworzyć klasy, które będą odpowiadały za komunikację z allegro.
Robi się to banalnie:
file->new->other
i z sekcji Web services wybieramy: WSDL
wpisujemy nazwę pliku jaką chcemy.
Nie edytujemy tego pliku, zostawiamy wszystko tak jak jest.
klikamy na niego prawym klawiszem i wybieramy:

pojawi się nowe okno, które wypełniamy:
service definition: http://webapi.allegro.pl/uploader.php?wsdl


resztę zostawiamy bez zmian.
klikamy finish, i niech dzieje się magia ;)
Po chwili naszym oczom ukażą się klasy do obsługi allegro api :)
Dodatkowo plugin do wsdl dodaje nam jary z axisem, ale skoro mamy już maven'a, to możemy wszystkie dodatkowe biblioteki usunąć.
To wszystko :) Teraz pozostaje nam tylko spróbować się połączyć i... pisać to co chcemy.

Tworzymy sobie nową klasę. Nazwę ją AllegroTest


import java.rmi.RemoteException;
import javax.xml.rpc.ServiceException;
import javax.xml.rpc.holders.LongHolder;
import javax.xml.rpc.holders.StringHolder;
import AllegroWebApi.AllegroWebApiPortType;
import AllegroWebApi.AllegroWebApiService;
import AllegroWebApi.AllegroWebApiServiceLocator;




public class AllegroTest {

public static void main(String[] args) {
// TODO Auto-generated method stub
AllegroWebApiService allegroWebApiService = new AllegroWebApiServiceLocator();
try {
AllegroWebApiPortType allegro = allegroWebApiService.getAllegroWebApiPort();
String userLogin = "login allegro"; //tutaj login allegro
String userPassword = "haslo allegro"; //tutaj hasło allegro
int countryCode = 1; //kod kraju - dostajemy go razem z kluczem webapi 
String webapiKey = "xxx"; //klucz webapi
long localVersion = 333; //klucz wersji 
StringHolder sessionHandlePart = new StringHolder(); //tutaj znajdzie sie id sesji po zalogowaniu
LongHolder userId = new LongHolder(); //tutaj znajdzie sie nasz identyfikator
LongHolder serverTime = new LongHolder(); //czas
allegro.doLogin(userLogin, userPassword, countryCode, webapiKey, localVersion, sessionHandlePart, userId, serverTime);
//jesli nie wyskoczy zaden exception, to znaczy, że logowanie sie udalo...
//to wyświetlmy kilka danych
System.out.println("Id: "+userId.value);
System.out.println("identyfikator sesji: "+sessionHandlePart.value);

} catch (ServiceException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (RemoteException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}


I to wszystko.
Cały system jest dość pokręcony. Wynik działania metody jest przekazywany jako parametr, czasem jest baaardzo dużo parametrów, opakowanych w obiekty, które są dalej w coś opakowane, więc czasem można się nieźle zakręcić.
Nie ma po co opisywać wszystkich metod jakie można używać, bo właściwie wszystko działają na podobnej zasadzie co przedstawione tutaj logowanie.
Jeśli zajdzie taka potrzeba, będę kontynuował temat allegro + java.
Dodatkowe informacje - właściwie kompletne znajdziecie na:
http://allegro.pl/webapi/documentation.php



czwartek, 15 września 2011

Hello World

Pierwszy wpis.
Pierwsze podejście do poważniejszego bloga.
Na Javie - o programowaniu w Javie, trochę o php, trochę o serwerach i wirtualizacji.