Skip navigation

Tag Archives: Publisher API

Die Client Library wurde auf die folgenden API Versionen aktualisiert:

  • zanox Publisher API Version 2011-03-01 (stable)
  • zanox Connect API Version 2010-02-01 (stable)
  • zanox Data API Version 2011-05-01 (stable)

Folgendes wurde geändert:

  • Migration auf neueste API Versionen
  • zanox.com als Connect Domain
  • Überladung des Constructors ohne httpProxy Parameter
  • Implementierung von GetTrackingCategories in der Publisher API

Die zanox Client Library ist im Wesentlichen ein SOAP Wrapper und unterstützt die Drei Authentifizierungsmechanismen:

  • Authentifizierung für den Zugriff auf den eigenen Account mittels eigener API Credentials
  • Authentifizierung im Namen eines Dritten mit einer aktiven UI Session (zanox Connect OAuth Flow)
  • Authentifizierung im Namen eines Dritten mit OfflineToken

Wie funktioniert der Zugriff auf den eigenen Account mittels eigener API Credentials?
Voraussetzung: Erzeuge dir deine API Credentials (API Keys) für deinen Publisher Account, indem du dir unter apps.zanox.com eine Application anlegst. Für den Zugriff au den eigenen Account ist es nicht notwendig, die Application im Application Store zu veröffentlichen.

var publisherAPI = new PublisherAPI();

var permanentDeveloperCredentials = new sessionType()
{
connectId = Properties.Settings.Default.ConnectId,
sessionKey = Properties.Settings.Default.PublicKey,
secretKey = Properties.Settings.Default.SecretKey
};

var profile = publisherAPI.GetProfile(zanoxConnectSession);
var sales = publisherAPI.GetSales(zanoxConnectSession, ...some more filters);
var incentives = publisherAPI.GetIncentives(zanoxConnectSession, ...filters);

Wie funktioniert der Connect Flow?
Voraussetzung: Erzeuge wiederum eine Application unter apps.zanox.com eine Application anlegst. Achte diesmal darauf, dass du sie in der Kategorie “For Sale” anlegst und einen Callback Handler einträgst. Z.B. www.example.com/callback.ashx. Nun kannst du Kontakt mit zanox aufnehmen um das Rechtemanagement, Freischaltung von Testnutzern, Offlinezugriff und eventuelles Pricing deiner Application festzulegen. Nach der Fertigstellung deiner Anwendung kannst du deine App dann deine Application im Application Store veröffentlichen.

Der Connect Flow Startet mit einem Connect Link für deine App. Dieser setzt sich wie folgt zusammen:
https://auth.zanox.com/login?appid=FA5D6DA48D2BCA473C39
Der Link für zum Loginformular von zanox. Nach erfolgreichem Login findet ein Redirect zu deiner Callback Url statt. Es wird dynamisch ein sog. AuthToken als URL Parameter angefügt. Das AuthToken wird bei jedem Connect Flow neu erzeugt und kann nur einmalig für den Aufruf von GetSession verwendet werden. Der Rückgabewert von GetSession enthält API Credentials für den delegierten API Zugriff auf die freigegebenen API Resourcen (z.B. Profile & Reports) im Namen des Publishers. Das folgende Codebeispiel setzt den eben beschriebenen Connect Flow voraus; anbei ein Beispiel für einen CallbackHandler:

// retrieve authToken from callback request
string authToken = context.Request[PublisherAPI.AUTHTOKEN_NAME];
string publicKey = System.Configuration.ConfigurationManager.AppSettings["ZANOX.PublicKey"];
string secretKey = System.Configuration.ConfigurationManager.AppSettings["ZANOX.SecretKey"];

var publisherAPI = new PublisherAPI();
var zanoxConnectSession = publisherAPI.GetSession(publicKey, secretKey, authToken);</code>

var profile = publisherAPI.GetProfile(zanoxConnectSession);
var sales = publisherAPI.GetSales(zanoxConnectSession, ...some more filters);
var incentives = publisherAPI.GetIncentives(zanoxConnectSession, ...filters);

zanox connect dialog

 

Codebeispiele des Client Toolkits
Das Client Toolkit enthält Beispiele für alle Drei Authentifizierungsfälle aber auch für verschiedene Projekttypen:

  • Example Websites (Forms & MVC) implementing zanox Connect Authentification Flow
  • Example Console Application mit OfflineToken
  • Example Widget using the RESTful JSONP API

Falls weitere Tutorials zum Thema zanox Web Services interessant sind, schreib mir einfach eure Anregungen ins Kommentarfeld oder per Email.
Weitere Codebeispiele und Anwendungsfälle folgen.