30 grudnia 2005 (piątek), 22:26:26
Blox.pl API
API Blox.pl
Zachowuje sobie strone API blox.pl aby jej potem nie szukac. Oryginalnie opublikowana byla tu: http://blox.pl/html?page=apiBlox
Strona ta przeznaczona jest dla programistów chcących tworzyć
aplikacje, które umożliwiają zarządzanie blogiem w serwisie
blox.pl z pominięciem interfejsu www. Program taki może komunikować
się z serwisem blox.pl bezpośrednio przy pomocy API Blox.pl.
Interfejs serwisu oferuje następującą funkcjonalność:
- pobieranie listy blogów użytkownika
- pobieranie listy ostatnich notek z danego bloga
- tworzenie, edycji i kasowanie notek
- ładowanie plików binarnych
API Blox.pl zostało stworzone w oparciu o technologię XML-RPC.
Pisząc interfejs wzorowaliśmy się na Blogger
API oraz MetaWeblog
API, metody API Blox.pl są więc w obu przypadkach z nimi
kompatybilne.
Z API Blox.pl korzysta między innymi program Bloxer.
Żądania wywołania metod XML-RPC powinny być kierowane na adres
URI: http://www.blox.pl/xmlrpc
Obsługiwane przez blox.pl metody z Blogger API:
blogger.newPost - wysyła nową notkę na bloga
parametry wywołania:
- <string> appkey ignorowany
- <string> blogid nazwa bloga, do którego będzie
wysłana nowa notka, np. dla bloga o adresie xyz.blox.pl będzie
to xyz
- <string> username login właściciela/administratora/użytkownika
bloga (ale nie czytelnika)
- <string> password hasło użytkownika
- <string> content treść notki
- <boolean> publish czy wpis ma być
opublikowany (true) czy zapisany jako szkic (false)
zwraca <string> identyfikator nowego wpisu lub błąd
wywołania procedury zgodny ze specyfikacją XML-RPC
blogger.editPost - modyfikuje istniejącą notkę
parametry wywołania:
- <string> appkey ignorowany
- <string> postid identyfikator liczbowy
modyfikowanej notki
- <string> username login właściciela/administratora
bloga lub autora notki
- <string> password hasło użytkownika
- <string> content treść notki
- <boolean> publish czy wpis ma być
opublikowany (true) czy zapisany jako szkic (false)
zwraca <boolean> true jeśli notka została pomyślnie
zmodyfikowana, false w przeciwnym wypadku lub błąd wywołania
procedury zgodny ze specyfikacją XML-RPC
blogger.getPost - pobiera notkę z bloga
parametry wywołania:
- <string> appkey ignorowany
- <string> postid identyfikator liczbowy notki
- <string> username login właściciela/administratora
bloga lub autora notki
- <string> password hasło użytkownika
zwraca notkę jako <struct> tablicę z wartościami
przypisanymi do kluczy:
<string> "content" - treść
<string> "userid" - login autora
<string> "postid" - identyfikator notki
<string> "dateCreated" - data utworzenia notki
lub błąd wywołania procedury zgodny ze specyfikacją XML-RPC
blogger.getRecentPosts - pobiera ostatnio napisane notki
parametry wywołania:
- <string> appkey ignorowany
- <string> blogid nazwa bloga
- <string> username login właściciela/administratora
bloga lub autora notek
- <string> password hasło użytkownika
- <int> numberOfPosts liczba ostatnich notek,
którą chcemy pobrać
zwraca listę notek jako <array> listę <struct>
tablic z wartościami przypisanymi do kluczy:
<string> "content" - treść
<string> "userid" - login autora
<string> "postid" - identyfikator liczbowy
notki
<string> "dateCreated" - data utworzenia notki
lub błąd wywołania procedury zgodny ze specyfikacją XML-RPC
blogger.deletePost - kasuje notkę
parametry wywołania:
- <string> appkey ignorowane
- <string> postid identyfikator notki
- <string> username login właściciela/administratora
bloga lub autora notki
- <string> password hasło użytkownika
- <boolean> publish ignorowane
zwraca <boolean> true lub błąd wywołania procedury
zgodny ze specyfikacją XML-RPC
blogger.getUsersBlogs - pobiera adresy blogów użytkownika
parametry wywołania:
- <string> appkey ignorowany
- <string> username login właściciela/administratora/użytkownika
blogów
- <string> password hasło użytkownika
zwraca listę adresów jako <array> listę <struct>
tablic z wartościami przypisanymi do kluczy:
<string> "blogid" - identyfikator bloga
<string> "url" - adres url bloga, nie
zaimplementowane
<string> "blogName" - nazwa bloga
lub błąd wywołania procedury zgodny ze specyfikacją XML-RPC
blogger.getUserInfo - zwraca informacje o użytkowniku,
nie zaimplementowana
parametry wywołania:
- <string> appkey - ignorowany
- <string> username - login każdego użytkownika
bloga
- <string> password - hasło użytkownika
zwraca <struct> tablicę z wartością przypisaną do
klucza:
<string> "userid" - login
lub błąd wywołania procedury zgodny ze specyfikacją XML-RPC
Obsługiwane metody z API MetaWebLog:
metaWeblog.newPost - dodaje nową notkę
parametry wywołania:
- <string> blogid nazwa bloga
- <string> username login właściciela/administratora/użytkownika
bloga (ale nie czytelnika)
- <string> password hasło użytkownika
- <struct> content treść notki jako tablica
z wartościami przypisanymi do kluczy: <boolean>
"flNotOnHomePage" - ignorowany
<string> "title" - tytuł notki (max 255
znaków)
<string> "description" - treść notki (max
16KB)
<array> "categories" - lista nazw
kategorii, do których ma zostać dodana notka (obecnie obsługiwana
tylko 1 kategoria), lub brak wartości - wtedy notka trafia do
kategorii domyślnej
<string> "pubDate" - ignorowany
<string> "guid" - ignorowany
<string> "author" - login autora notki,
musi mieć co najmniej status użytkownika bloga
- <boolean> publish czy wpis ma być
opublikowany (true) czy zapisany jako szkic (false)
zwraca <string> identyfikator nowo utworzonej notki
lub błąd wywołania procedury zgodny ze specyfikacją XML-RPC
metaWeblog.editPost - modyfikuje notkę
parametry wywołania:
- <string> postid identyfikator notki
- <string> username login właściciela/administratora
bloga lub autora notki
- <string> password hasło użytkownika
- <struct> content treść notki jako tablica
z wartościami przypisanymi do kluczy: <boolean>
"flNotOnHomePage" - ignorowany
<string> "title" - tytuł notki (max 255
znaków)
<string> "description" - treść notki (max
16KB)
<array> "categories" - lista nazw kategorii
do których ma zostać dodana notka (obecnie obsługiwana tylko 1
kategoria), lub brak wartości - wtedy notka trafia do kategorii
domyślnej
<string> "pubDate" - ignorowany
<string> "guid" - ignorowany
<string> "author" - login autora notki,
musi mieć co najmniej status użytkownika bloga.
- <boolean> publish czy wpis ma być
opublikowany (true) czy zapisany jako szkic (false)
zwraca <boolean> true
lub błąd wywołania procedury zgodny ze specyfikacją XML-RPC
metaWeblog.getPost - pobiera notkę
parametry wywołania:
- <string> postid identyfikator notki
- <string> username login właściciela/administratora
bloga lub autora notki
- <string> password hasło użytkownika
zwraca <struct> tablicę z wartościami przypisanymi do
kluczy: <string> "title" - tytuł notki
<string> "description" - treść notki
<array> "categories" - wektor nazw kategorii do
których ma zostać dodana notka (obecnie obsługiwana tylko 1
kategoria), lub brak wartości
<string> "pubDate" - data publikacji
<string> "guid" - identyfikator notki
<string> "author" - login autora notki
lub błąd wywołania procedury zgodny ze specyfikacją XML-RPC
metaWeblog.getRecentPosts - pobiera ostatnio napisane
notki
parametry wywołania:
- <string> blogid nazwa bloga
- <string> username login właściciela/administratora
bloga lub autora notek
- <string> password hasło użytkownika
- <int> numberOfPosts liczba ostatnich notek,
którą chcemy pobrać
zwraca listę notek jako <array> listę tablic <struct>
z wartościami przypisanymi do kluczy:
<string> "title" - tytuł notki
<string> "description" - treść notki
<array> "categories" - wektor nazw kategorii do
których ma zostać dodana notka (obecnie obsługiwana tylko 1
kategoria), lub brak wartości
<string> "pubDate" - data publikacji
<string> "guid" - identyfikator notki
<string> "author" - login autora notki
lub błąd wywołania procedury zgodny ze specyfikacją XML-RPC
metaWeblog.getCategories - pobiera wszystkie kategorie
bloga
parametry wywołania:
- <string> blogid nazwa bloga
- <string> username login użytkownika bloga
- <string> password hasło użytkownika
zwraca listę kategorii jako <array> listę <struct>
tablic z wartościami przypisanymi do kluczy:
<string> "htmlUrl" - nazwa kategorii
<string> "description" - tytuł opis kategorii
lub błąd wywołania procedury zgodny ze specyfikacją XML-RPC
metaWeblog.newMediaObject - ładuje do zasobów bloga
nowy plik
parametry wywołania:
- <string> blogid nazwa bloga
- <string> username login użytkownika bloga
- <string> password hasło użytkownika
- <struct> file plik jako tablica z wartościami
przypisanymi do kluczy:
<string> "name" - nazwa pliku
<string> "type" - typ MIME (musi być
dozwolony do ładowania na blox.pl)
<base64> "bits" - zawartość pliku formie
binarnej
zwraca <struct> tablicę z wartościami przypisanymi do
kluczy:
<string> "url" - adres url załadowanego pliku
lub błąd wywołania procedury zgodny ze specyfikacją XML-RPC.
Przykładowy fragent kodu w języku Java, prezentujący sposób użycia
metody blogger.getUsersBlogs (wymagany jest pakiet Apache
XML-RPC):
import java.io.IOException;
import java.net.MalformedURLException;
import java.util.Hashtable;
import java.util.Iterator;
import java.util.Vector;
import org.apache.xmlrpc.XmlRpcClient;
import org.apache.xmlrpc.XmlRpcException;
...
try
{
XmlRpcClient client = new XmlRpcClient( "http://www.blox.pl/xmlrpc" );
Vector params = new Vector();
params.addElement( "" );
params.addElement( "twoj_login" ); // username
params.addElement( "XXXXX" ); // haslo
Vector blogi = (Vector) client.execute( "blogger.getUsersBlogs", params );
if (blogi != null && !blogi.isEmpty())
{
for (Iterator i=blogi.iterator(); i.hasNext(); )
{
Hashtable blog = (Hashtable) i.next();
System.out.println(blog.get("blogid")+", "+blog.get("url")+", "+blog.get("blogName"));
}
}
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (XmlRpcException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
|