postStatus

Beschreibung

Diese Methode setzt einen Beitrag auf der Pinnwand des Nutzers ab. Dies geschieht in Abhängigkeit des gewählten Providers.

Kommunikation zwischen

Consuming-Party Backend > allyve Backend

Request-URL

/api/sociallyve/protected/user/status

Methoden-Typ

POST

Request-Parameter

FeldBeschreibung
providerDer angefragte Provider als Stringkonstante. Eine Liste der unterstützten Provider befindet sich im Kapitel 4.1.
uidDie ID des Nutzers beim entsprechenden Provider.
tDer Text, der auf der Pinnwand des Nutzers abgesetzt werden soll.
uDie URL, die beim Klick auf den Pinnwand-Text aufgerufen werden soll (in der Regel die URL der Consuming-Party).
iDie URL zu der Grafik, die in dem Pinnwandeintrag erscheinen soll.
providerparamsWeitere Parameter, die speziell auf den ausgewählten Provider zugeschnitten sind. Der Parameter muss als Json kodiert sein, wobei die Werte immer als String kodiert sein müssen, auch wenn sie wieder ein Json-Objekt sind.

Beispiel:
{description: 'Beschreibung', caption: 'Caption', privacy: '\{value : \'ALL_FRIENDS\'}'}
partyidOptionaler Parameter zur Identifikation der aufrufenden Anwendung in den Statistiken

Untersützte Paramter für “providerparams” (geordnet nach dem Provider):

ProviderUnterstützte Parameter
Facebook- caption
- description
- privacy

allyve-Backendaktivität

Backend übermittelt die Parameter für das Statusupdate an die Providerschnittstelle.

Response

HTTP-Status

Response-Parameter

keine

Mögliche Http Error Codes

HTTP-CodeBeschreibung
400Ein unbekannter Fehler ist aufgetreten.
404Der angegebene Benutzer wurde nicht gefunden.
406Der angegebene Provider ist unbekannt.
Konflikt bei den Eingabeparametern. Dieser Fehler tritt auf, wenn fälschlicherweise auch der Parameter externalid gesetzt wurde.
409Konflikt bei den Eingabeparametern. Dieser Fehler tritt auf, wenn fälschlicherweise auch der Parameter externalid gesetzt wurde.
501PostStatus ist für den angegebenen Provider nicht verfügbar.
503Fehler bei Kommunikation mit dem Provider.

Weiterführende Informationen

Code-Beispiel: PHP

//Your application's credentials for using the allyveAPI
$myAppKey = '12345678910111213';
$myAppSecret = 'IWillNeverTellThisToAnyone';
 
//We want to post to the user's facebook wall, so this is the API URL to use
$apiUrl = 'https://api.allyve.com/api/sociallyve/protected/user/status';
 
//construct an array with all the neccessary parameters needed for the request to the API
$params["timestamp"] = time();
$params["applicationid"] = $myAppKey;
$params["provider"] = 'facebook';
$params["uid"] = 'userIdAtFacebook';
$params["t"] = 'The message that will be posted on the users wall';
$params["i"] = 'http://www.example.com/theImageUrlThatIsLinkedToTheMessage.jpg';
$params["u"] = 'http://www.yourwebsite.com/thePageTheMessageRefersTo.html';
$params["providerparams"] = "{description: 'This is an interesting message', caption: 'My message caption', privacy: '\{value : \'ALL_FRIENDS\'}'}";
 
//sort the parameters array alphabetically by the array keys
ksort($params);
 
//construct a temporary array, that will hold concatinated keys and values of the parameter array (key=value)
$tempArray = array();
//walk over the parameter array and combine each key and value
foreach ($params as $key => $value) {
	$tempArray[] = $key . "=" . $value;
}
 
//construct a properly formatted querystring from the combined key/values
$queryStringUnsigned = implode("&", $tempArray);
 
//construct the signature
$querySignature	= base64_encode(hash_hmac("sha1", $queryStringUnsigned, $myAppSecret, true));
//append the signature to the unsingend query string
$queryStringSigned = $queryStringUnsigned . "&signature=" . urlencode($querySignature);
 
//let's call the API with the help of CURL
$curl = curl_init($apiUrl);
curl_setopt ($curl, CURLOPT_POST, TRUE);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, TRUE);
//If you do not have alredy set up a CA cert bundle in PEM format uncomment the next line, BUT YOU SHOULD NOT DO THAT IN PRODUCTION
//curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, FALSE);
 
//If you have a CA cert bundle set the path to it (http://curl.haxx.se/docs/caextract.html)
$pathToMyCertBundle = getcwd().'/cacert.pem';
curl_setopt($curl, CURLOPT_CAINFO, $pathToMyCertBundle);
 
curl_setopt($curl, CURLOPT_POSTFIELDS, $queryStringSigned);
 
curl_exec($curl);
curl_close($curl);

Zuletzt aktualisiert am 5. März 2012 von admin - Anmelden

Kommentare

  1. Alexej Nagel

    “Code-Beispiel unter Verwendung des Java-SDKs”
    Hmmm, meines Wissens nach ist dieses Beispiel in PHP und nicht in Java gemacht worden. Habe ich etwas in der Java-Entwicklung verschlafen? 8-0

    17. Januar 2012 @ 13:21
  2. Marcel Semmler

    Vielen Dank. Da hat sich wohl der Fehlerteufel eingeschlichen.

    Beste Grüße
    Marcel Semmler

    17. Januar 2012 @ 13:34

Schreibe einen Kommentar