Download
Die mit
XFIRE (Version
1.2.4) generierten Java-Clientklassen können Sie hier downloaden:
phonepublisher-v2.jar
Authentifizierung
Die Authentifizierung erfolgt über einen UserToken, der bei jedem
Methodenaufruf als SOAP-Header übermittelt wird. Das Password wird
dabei als md5-hash übermittelt. Zu beachten ist, dass dieser Token nur
kurze Zeit gültig ist. Er sollte daher nicht gespeichert werden.
Authentifizierung in Java
package com.phonepublisher.service.junit;
import java.text.SimpleDateFormat;
import java.util.Date;
import org.apache.commons.codec.digest.DigestUtils;
import com.phonepublisher.service.ObjectFactory;
import com.phonepublisher.service.PhonePublisherServiceClient;
import com.phonepublisher.service.PhonePublisherService;
import com.phonepublisher.service.UserToken;
public class SoapUtil {
static ObjectFactory of = new ObjectFactory();
static public UserToken createToken(String name, String password) {
SimpleDateFormat df = new SimpleDateFormat("yyyyMMddHHmm");
UserToken ret = of.createUserToken();
ret.setUsername(of.createUserTokenUsername(name));
String authtime = df.format(new Date());
ret.setAuthtime(of.createUserTokenAuthtime(authtime));
String authtoken = DigestUtils.md5Hex(password + authtime);
ret.setAuthtoken(of.createUserTokenAuthtoken(authtoken));
return ret;
}
static PhonePublisherServiceClient client =
new PhonePublisherServiceClient();
static PhonePublisherService phonePublisherService =
client.getPhonePublisherServiceHttpPort("http://PhonePublisher.com
/services/V2/PhonePublisherService?wsdl");
static public PhonePublisherService getService() {
return phonePublisherService;
}
}
Authentifizierung in PHP
$password = "pwd";
$username = "name";
$authtime = date("YmdHi");
$authtoken = md5($password.$authtime);
$client = new SoapClient(
'http://PhonePublisher.com/services/V2/PhonePublisherService?wsdl',
array( 'trace' => 1 ,'soap_version' => SOAP_1_1));
$header=new SoapHeader("http://service.PhonePublisher.com","token",
array("username" => $username, "authtime" => $authtime,
"authtoken" => $authtoken),false);
$client ->__setSoapHeaders(array($header));
...
Kunde
Es können beliebig viele Kunden angelegt werden.
Angelegte Kunden können sich bei Bedarf selber über PhonePublisher.com
anmelden und ihre persönlichen Daten ändern.
Jeder Kunden benötigt für die Zugriffskontrolle eine oder mehrere
Telefonnummern mit denen er einen AudioCast abrufen möchte. Die
Zugriffsberechtigung wird dann anhand der übermittelten Rufnummer
überprüft.
Kunden dürfen nur den AudioCast abrufen für den sie explizit
freigeschalten wurden.
Objekt
|
Eigenschaft
|
Beschreibung
|
Customer
|
username
|
Eindeutiger Name des Kunden. Unter diesem Namen kann sich der
Kunden bei PhonePublisher.com anmelden und seine persönlichen Daten
ändern.
|
Customer
|
password
|
Password des Kunden.
|
Customer
|
active
|
Wenn dieser Wert false ist, so ist der Kunde deaktiv. Er kann sich
dann nicht bei PhonePublisher anmelden und keine AudioCasts
abrufen.
|
Customer
|
email
|
Die eMail-Adresse des Kunden.
|
Customer
|
id
|
Eindeutige interne id des Kunden.
|
PhoneNumber
|
number
|
Telefonnummer des Kunden. Für die Überprüfung der
Zugriffsberechtigung für einen AudioCast wird die übermittelte
Rufnummer mit dieser Nummer verglichen.
|
Methode
|
Rückgabewert
|
Beschreibung
|
AddCustomer(Customer)
|
void
|
Anlegen eines neuen Kunden.
|
RemoveCustomer(Customer)
|
void
|
Löschen eines bestehenden Kunden.
|
UpdateCustomer(Customer)
|
void
|
Ändern eines bestehenden Kunden. Der Kunde wird dabei anhand der id
ermittelt.
|
GetCustomers()
|
List<Customer>
|
Ermittelt alle Kunden.
|
GetCustomer4Name(String username)
|
Customer
|
Ermittelt einen Kunden anhand des eindeutigen usernamens.
|
GetCustomer4EMail(String email)
|
Customer
|
Ermittelt einen Kunden anhand der eindeutigen eMail-Adresse.
|
GetCustomerPhoneNumbers(Customer)
|
List<PhoneNumber>
|
Ermittelt alle Rufnummern eines Kunden.
|
RemoveCustomerPhoneNumbers(
List<PhoneNumber>)
|
void
|
Löscht mehrere Telefonnummern eines Kunden.
|
AddCustomerPhoneNumbers(
List<PhoneNumber>)
|
void
|
Zuweisen mehrerer Rufnummern zu einem Kunden.
|
Beispiel: Löschen aller Kunden
...
PhonePublisherService service = SoapUtil.getService();
UserToken token = SoapUtil.createToken("name", "password");
ArrayOfCustomer customers = service.getCustomers(token);
Iterator<Customer> it = customers.getCustomer().iterator();
while(it.hasNext())
{
Customer customer = it.next();
service.removeCustomer(customer, token);
}
...
Reservierte Nummern
Je nach vertraglicher Vereinbarung reserviert PhonePublisher für Sie
eine oder mehrere Nummern. Diese Nummern sind entweder noch frei oder
wurden bereits einem AudioCast zugewiesen.
Methode
|
Rückgabewert
|
Beschreibung
|
GetAllReservedNumbers()
|
List<PhoneNumber>
|
Ermittelt alle "reservierten" Nummern.
|
GetFreeReservedNumbers()
|
List<PhoneNumber>
|
Ermittelt alle "reservierten" Nummern die noch frei sind.
|
GetAsignedReservedNumbers()
|
List<PhoneNumber>
|
Ermittelt alle "reservierten" Nummern denen bereits ein AudioCast
zugewiesen ist.
|
AudioCast
Das Objekt AudioCast beschreibt die Eigenschaften eines AudioCasts. Es
hat dazu einen Titel und eine Beschreibung. Über die Eigenschaft
protected lässt sich der Zugriffsschutz für einzelne AudioCasts ein-
bzw. ausschalten. Ist der Zugriffschutz aktiviert so wird ahand der
übermittelten Rufnummer überprüft ob der Anrufer berechtigt ist diesen
AudioCast zu hören. Andernfalls wird optional eine Hörprobe abgespielt.
Physisch kann ein AudioCast aus mehreren Episoden bestehen, zwischen
denen der Anrufer über seine Telefontastatur navigieren kann. Ruft der
Anrufer später nochmals an so wird automatisch ab der zuletzt gehörten
Episode wieder angefangen.
Objekt
|
Eigenschaft
|
Beschreibung
|
PhoneCast
|
title
|
Titel des PhoneCasts.
|
PhoneCast
|
description
|
Beschreibung des PhoneCasts.
|
PhoneCast
|
protect
|
Über dieses Attribut lässt sich der Zugriffsschutz ein- bzw
ausschalten.
|
PhoneCast
|
sampleurl
|
URL der Hörprobe. Die URL kann auf eine beliebige Audiodatei im
Internet verweisen. Unterstützt werden praktisch alle gängigen
Formate.
|
PhoneCast
|
id
|
Eindeutige interne id des Phonecasts.
|
Episode
|
id
|
Eindeutige interne id der Episode.
|
Episode
|
phonecastId
|
Eindeutige interne id des PhoneCasts zu dem diese Episode gehört.
|
Episode
|
sequentialnumber
|
Die Episoden eines Dokumentes werden anhand dieser laufenden Nummer
sortiert. Die Episode mit der kleinsten laufenden Nummer wird
zuerst abgespielt.
|
Methode
|
Rückgabewert
|
Beschreibung
|
GetAllPhoneCasts()
|
List<PhoneCast>
|
Ermittelt alle PhoneCasts.
|
GetPhoneCast4Number(PhoneNumber)
|
PhoneCast
|
Ermittelt den PhoneCast, welcher der, als Argument übergebenen,
"reservierten" Nummer zugewiesen ist.
|
GetPhoneCast4Id(Long phonecastid)
|
PhoneCast
|
Ermittelt einen PhoneCast anhand der eindeutigen internen id.
|
AssignNumber(
PhoneCast phonecast,
PhoneNumber phonenumber)
|
void
|
Ordnet einem PhoneCast eine "reservierte" Nummer zu.
|
AddPhoneCast(PhoneCast phonecast)
|
PhoneCast
|
Legt einen neuen PhoneCast an. Als Rückgabewert erhält man den
selben PhoneCast mit gesetzter eindeutiger interner id.
|
RemovePhoneCast(PhoneCast)
|
void
|
Löscht einen existierenden PhoneCast und alle seine Episoden.
|
GetEpisodes(PhoneCast)
|
List
|
Ermittelt alle Episoden eines PhoneCast.
|
AddEpisodes(
List<Episode> episodes,
PhoneCast phonecast)
|
void
|
Weist mehrere Episoden einem PhoneCast zu.
|
RemoveEpisodes(
List<Episode> episodes,
PhoneCast phonecast)
|
void
|
Entfernt mehrere Episoden.
|
UpdateEpisodes(
List<Episode> episodes,
PhoneCast phonecast)
|
void
|
Ändert mehrere existierende Episoden. Die Episode wird jeweils
anhand ihrer id ermittelt.
|
Berechtigungszeitraum
PhoneCasts mit aktiviertem Zugriffsschutz dürfen nur von dazu
berechtigten Kunden abgerufen werden. Eine Berechtigung gilt dabei
immer für einen gewissen Zeitraum.
Objekt
|
Eigenschaft
|
Beschreibung
|
TimePeriod
|
from
|
Das Objekt TomePeriod definiert einen Gültigkeitsbereich der bei
"from" beginnt und "to" endet.
|
TimePeriod
|
to
|
Das Objekt TomePeriod definiert einen Gültigkeitsbereich der bei
"from" beginnt und "to" endet.
|
TimePeriod
|
id
|
Eindeutige interne id des Gültigkeitsbereiches.
|
Methode
|
Rückgabewert
|
Beschreibung
|
GetTimePeriod(Customer,PhoneCast)
|
List<TimePeriod>
|
Ermittelt alle Zeiträume in denen ein Kunde berechtigt ist einen
bestimmten PhoneCast abzurufen.
|
AddTimePeriod(Customer, PhoneCast, List<TimePeriod>)
|
void
|
Fügt mehrere Zeiträume bezüglich eines Kunden für einen PhoneCast hinzu.
|
RemoveTimePeriod(Customer, PhoneCast, List<TimePeriod>)
|
void
|
Löschen mehrer Berechtigungszeiträume bezüglich eines Kunden für einen bestimmten PhoneCast.
|