Nasze pierwsze aplikacje gronowego API! 3
Stworzyliśmy dwie aplikacje pod nowe Gronowe API, które opublikujemy tu już niedługo. Najbardziej interesujący w nich jest fakt, że pomimo naszego (gronowego działu R&D) poglądu na temat tego systemu operacyjnego, obie działają pod Windowsem.
Mają około 20 linijek kodu i napisane są w językach skryptowych. Wykonują użyteczne zadanie kosztem niewielkiej przestrzeni na dysku. Powstały jako przykłady do nowego API.
szybki uploader do avatarów: avatar.cmd
setlocal
set CURL="C:/Documents and Settings/kerni/Pulpit/curl-7.16.4/curl.exe"
set COOKIEFILE=%TMP%/avacook.tmp
set LOGIN=__TU__MOJ_LOGIN__
set PASSWORD=__TU_MOJE_HASLO__
set LOGINARGS="login=%LOGIN%&password=%PASSWORD%&client=avatar_batch&cliver=1.0&lang=pl"^
%CURL% -v -c %COOKIEFILE% http://api.grono.net/pub/apilogin/ -d %LOGINARGS%
if not errorlevel 0 goto login_err
%CURL% -v -0 -b %COOKIEFILE% -Favatar=@%1 http://api.grono.net/api/avatar/%LOGIN%/
if not errorlevel 0 goto upload_err
goto end
:login_err
echo Bledne parametry logowania
goto end
:upload_err
echo Blad podczas uploadu
goto end
:end
endlocal
Wymaga CURLa, ale sprawuje się doskonale. Wykorzystuje technikę Drag&Drop do uploadowania plików na grono. Działa na każdym relatywnie świeżym windowsie, nie potrzebuje instalatora ani wpisów w rejestrze.
natywny blimp: blimp.vbs
' konfiguracja
LOGIN = "mojlogin"
PASSWORD = "mojehaslo"
' tworzymy xmlhttp
Set http = CreateObject("Microsoft.XmlHttp")
'logujemy sie na API
http.open "POST", "http://api.grono.net/pub/apilogin/", 0
' tak sie robi POST w MSXML
http.setRequestHeader "Content-Type", "application/x-www-form-urlencoded"
http.send ("login=" + LOGIN + "&password=" + PASSWORD + "&client=avatar_vbs&cliver=0.1&lang=pl")
' sciagamy starego blimpa
http.open "GET", "http://api.grono.net/api/user/reklama/status/", 0
http.send
text = http.responseText
' zapytamy usera o nowego blimpa, podsuwajac mu stary
newtext = InputBox("Wpisz blimpa!", "BLIMP", text)
http.open "POST", "http://api.grono.net/api/user/reklama/status/", 0
http.setRequestHeader "Content-Type", "application/x-www-form-urlencoded"
' send sie nam wywali bo POST zwroci HTTP 204 a nie 200
' czego MSXML juz nie kuma :)
On Error Resume Next
' wysylamy nowego blimpa
http.send ("status=" + newtext)
Brak wymagań i prostota użytkowania czynią go doskonałym przykładem. Dla wygody użytkownika pobiera starego blimpa i podsuwa go do zmodyfikowania. Wyglądem integruje się z resztą systemu operacyjnego.
dlaczego?
Stworzenie każdej z nich zajęło ok. 25 minut, z czego 20 na szukanie dokumentacji do XMLHTTP lub przypominanie sobie kontroli przepływu w plikach wsadowych. Celem było też odświeżenie umiejętności pisania w obskurnych językach i ćwiczenie cierpliwości w tworzeniu oprogramowania bez dedykowanych narzędzi.
linki
Oba programy znajdziecie tutaj. W przyszłości znajdzie się ich tam więcej. Istnieje też repozytorium, skąd można łatwo pobierać i przeglądać dostępne zasoby API. W planach jest umożliwienie dostępu do niego przez anonimowe svn.
Logowanie się 48
Większość zasobów Grona jest dostępnych po zalogowaniu się. Te, które można używać bez autoryzacji, będą miały to oznaczone w opisie. Opis API Login
