PhonePublisher
Login
Produkte
Schnittstellendokumentation

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.


2007-2018 Jan Zimmermann PhonePublisher.com All rights reserved.