API

App-Verzeichnis-SDK

API (v2.0, aktuell)

So funktioniert's

JSApi ist die Kommunikations-Schnittstelle des App-Verzeichnisses SDK zwischen Ihrer App und dem Hootsuite Dashboard. Mit der API können App-Entwickler Funktionen aufrufen, die Ereignisse ans Hootsuite Dashboard senden, und Benachrichtigungen für Hootsuite Dashboard-Ereignisse innerhalb einer App erhalten.

Interaktionen zwischen Hootsuite und Ihrer App werden von JSApi ermöglicht. Die SDK Javascript-Bibliothek, hsp.js, bietet Funktionen, die bestimmte Funktionalitäten im Hootsuite Dashboard unterstützen. Außerdem ermöglicht hsp.js die Initialisierung und Registrierung Ihrer App, um Ereignisse vom Hootsuite Dashboard zu erhalten.

Hinweis: Bitte stellen Sie sicher, dass Ihr Server POST-Anfragen zulässt.

Setup

Folgendes ist für die Verwendung der JS-API nötig:

  • JS-Bibliothek – Die Bibliothek hsp.js ermöglicht die wechselseitige Kommunikation zwischen Ihrer App und dem Hootsuite Dashboard. Fügen Sie folgende Datei in die Hauptseite Ihrer App ein:

https://d2l6uygi1pgnys.cloudfront.net/jsapi/2-0/hsp.js

Zum Beispiel würde der Verweis auf diese Datei in Ihrer Hauptseite folgendermaßen erscheinen:

<script src="https://d2l6uygi1pgnys.cloudfront.net/jsapi/2-0/hsp.js"></script>

API-Funktionen, -Ereignisse und -Callback

Die Kommunikation von Ihrer App an das Hootsuite Dashboard erfolgt mithilfe der verfügbaren Funktionen in der Datei hsp.js.
 
Die Kommunikation vom Hootsuite Dashboard an Ihre App wird durch Veranstaltungen ermöglicht. Die Veranstaltungen , über die Ihre App benachrichtigt werden möchte, werden mit Aufrufen an die Funktion hsp.bind() registriert und geben dabei das jeweilige Ereignis sowie die Callback-Funktion an, die Ihre App ausführen wird, wenn das Ereignis ausgelöst wird.

Funktionen

  • init – Initialisiert die JS-API
  • bind – Registriert ein Hootsuite Dashboard-Ereignis, das mit der App abgewickelt werden soll, und eine dazugehörige Ereignisbehandlungsroutine
  • getMemberInfo – Wird zusammen mit anderen Zuweisungsmethoden und Callbacks verwendet
  • saveData – Wird mit getData zusammen verwendet, um Nutzereinstellungen von einer Sitzung zur nächsten zu behalten
  • getData – Wird mit saveData zusammen verwendet, um Nutzereinstellungen von einer Sitzung zur nächsten zu behalten
  • clearStatusMessage – Entfernt alle derzeit sichtbaren Statusmeldungen
  • Nachricht verfassen – Öffnet den Dialog „In sozialen Netzwerken teilen“
  • Retweet – Startet den Dialogprozess zum Retweeten
  • attachFileToMessage - Sends attachments to the compose box
  • customUserInfo – Öffnet ein Popup-Fenster mit Nutzerinformationen
  • getTwitterAccounts – Ruft eine Liste aller Twitter-Profile für den eingeloggten Nutzer ab
  • showCustomPopup – Zeigt ein modales Popup-Fenster mit einem iFrame mit App-spezifischem Inhalt
  • closeCustomPopup – Schließt das modale Popup-Fenster
  • showFollowDialog – Öffnet ein Dialog-Fenster, um einem Twitter-Nutzer zu folgen oder nicht mehr zu folgen
  • showImagePreview – Zeigt ein Bild in einem Popup-Fenster
  • showStatusMessage – Zeigt eine Benachrichtigung
  • showUser – Öffnet ein Popup mit Nutzerinformationen
  • updatePlacementSubtitle – Aktualisiert den Untertitel vom Stream der App
  • assignItem – Weist einem Hootsuite-Nutzer Textnachrichteninhalte zu
  • resolveitem – Element wird im App-Stream erledigt

Events

  • closepopup – Wird ausgelöst, wenn ein benutzerdefiniertes Popup, das von Ihrem App-Stream geöffnet wurde, geschlossen wird
  • dropuser – Wird ausgelöst, wenn ein Nutzer den Avatar eines Twitter-Nutzers vom Hootsuite Dashboard in Ihren App-Stream zieht
  • Aktualisieren – Wird ausgelöst, wenn die App-Spalte aktualisiert wird, entweder vom Nutzer im Stream oder als Teil einer Dahsboard-Aktualisierung
  • sendtoapp - Registering for this event will cause users to see a menu item reading Send to <app stream>… in Twitter, Facebook and LinkedIn stream message menus. This event is fired when users click on the menu item
  • sendcommenttoapp – Durch Registrierung für dieses Ereignis senden Nutzer einen einzelnen Facebook-Kommentar  (ohne Kommentarantworten) an Ihre App
  • sendcomposedmsgtoapp – Fügt ein App-Plugin zur nativen Profilauswahl für soziale Netzwerke von Hootsuite hinzu. Nutzer kann direkt aus dem Hootsuite-Nachrichtenfeld Nachrichten ans Plugin senden.
  • sendprofiletoapp – Durch Registrierung für dieses Ereignis können Nutzer ein Menü-Element in Profilmenüs für Twitter, Facebook, LinkedIn und Google+ Page sehen. Dieses Event wird ausgelöst, wenn Nutzer das Menü-Element anklicken.
  • sendassignmentupdates – Durch Registrierung dieses Ereignisses wird eine App über ihre Zuweisungsaktualisierungen benachrichtigt

Callback

API-Funktionen

In diesem Abschnitt werden die verfügbaren Funktionen und erwarteten Funktionssignaturen beschrieben.

hsp.init(params)

Initialisiert die JS-API und lädt die Design-CSS-Dateien.

params: Objekt:

  • subtitle: (String, optional)
  •  Der Untertitel Ihrer App, der im Stream-Titel angezeigt werden soll.
  • callBack: (Funktion, optional)
     Init sendet nach Initialisierung eine Fehlermeldung an die callBack-Funktion. Die Meldung lautet: Kein Fehler, wenn die Initialisierung erfolgreich war.
  • sendToAppDisableList: Geben Sie die sozialen Netzwerke an, unter denen Ihr sendtoapp-Plugin nicht angezeigt werden soll (‚facebook‘, ‚twitter‘)
  • sendProfileToAppDisableList: Geben Sie die sozialen Netzwerke an, unter denen Ihr sendtoprofileapp-Plugin nicht angezeigt werden soll (‚facebook‘, ‚twitter‘)

Beispiel:

hsp.init({ callBack: function( message ){ console.log('Error: ' + message); useTheme: true,sendToAppDisableList: ['facebook'],sendProfileToAppDisableList: ['twitter'],});

hsp.bind(eventName, callback)

Registriert eine Ereignisbehandlungsroutine für ein bestimmtes Ereignis.

eventName: (string)

Name dieses Ereignisses, kann einer der Folgenden sein:

  • closepopup – Wird ausgelöst, wenn ein benutzerdefiniertes Popup, das von Ihrem App-Stream geöffnet wurde, geschlossen wird
  • dropuser – Wird ausgelöst, wenn ein Nutzer den Avatar eines Twitter-Nutzers vom Hootsuite Dashboard in Ihren App-Stream zieht
  • Aktualisieren – Wird ausgelöst, wenn die App-Spalte aktualisiert wird, entweder vom Nutzer im Stream oder als Teil einer Dashboard-Aktualisierung
  • sendtoapp – Durch Registrierung für dieses Ereignis sehen Nutzer ein Menü-Element namens Send to <app stream> in Nachrichtenmenüs von Twitter- und Facebook-Streams. Dieses Ereignis wird ausgelöst, wenn Nutzer das Menü-Element anklicken.

callback: (Funktion)

Funktion für das Callback; die Parameter der Funktion hängen vom Ereignis ab. Details zu erwarteten Callback-Formaten finden Sie im Abschnitt „Ereignisse“.

Beispiel:

hsp.bind('refresh', function () { // code here});

Wie bereits erwähnt im Best Practices Abschnitt, es macht Sinn, das Neuladen des Streams zu unterdrücken, während der Benutzer damit interagiert (z.B. Nachrichten schreibt, Details ansieht, oder heruntergescrollt hat). Ein möglicher Ansatz könnte so aussehen:

hsp.bind('refresh', function () { // collect any text the user has entered into a comment entry box $(&quot;.hs_commentEntry textarea&quot;).each(function () { comments += $(this).val(); }); // comment entry boxes are empty and user has not scrolled down more than 15px if (comments === '' &amp;&amp; $(window).scrollTop() &lt; 15) { // code here }});

Die Verwendung von window.location.reload() wird NICHT empfohlen. Eine der elegantesten Lösungen wäre es, neue Nachrichten per AJAX abzufragen, nur neue Nachrichten in die DOM einzufügen und dabei vorhandene Nachrichten unberührt zu lassen.

hsp.getMemberInfo(function(info)

Diese Methode ist zur Verwendung zusammen mit anderen Zuweisungsmethoden und Callbacks gedacht (assignItem, resolveItem, Zuweisungsereignisanfrage). Da eine Zuweisung einem Team oder einem Teammitglied zugewiesen werden kann, muss Ihre App wissen, welchen Teams Ihr Nutzer angehört. Diese Informationen sind mit getMemberInfo abrufbar.

Wir empfehlen den Aufruf dieser Methode nach hsp.init.

hsp.getMemberInfo(function(info){// put code here});info object format:{&quot;userId&quot;:5339913,&quot;teamIds&quot;:[151906,154887]}

Mitgliedsdetails speichern

hsp.saveData und hsp.getData sind zur gemeinsamen Verwendung konzipiert, um Nutzereinstellungen von einer Sitzung für die nächste zu speichern (z. B. Nutzer-Token, individuelle Stream-Einstellungen und Filter, die der Nutzer in der App eingestellt hat). Die Methoden werden pro Stream und gegen die PID aufgerufen. 

Die Daten können in einem beliebigen String-Format gespeichert werden.

hsp.saveData(function)

hsp.saveData(data, callback); //Speichert Daten im Mitglieder-App-Stream und kann ein gerade gespeichertes Datenelement im Callback für den App-Stream zur Überprüfung holen
hsp.getData(callback); //Ruft Daten ab, die im Mitglieder-App-Stream gespeichert wurden

hsp.saveData({name: 'My Photo Stream',type:'steam',uid: 123456,token: '1a2b3c4d5e6f7g8h9i0j'},function(data){console.log('saved', data);});

hsp.getData(function(data)

{console.log('App gets data', data);});

hsp.clearStatusMessage()

Entfernt alle derzeit sichtbaren Statusmeldungen.

hsp.composeMessage(message, params)

Öffnet den Dialog „In sozialen Netzwerken teilen“ im Hootsuite Dashboard.

Wenn Ihr Beitrag ein Bild enthält, sollten Sie außerdem die Methode hsp.attachFiletoMessage in Erwägung ziehen.

Nachricht: (string)

Es gelten die Vorgaben für Twitter-Nachrichten, eine Direktnachricht an @Hootsuite würde also so aussehen: d hootsuite <your message here>

params: (Objekt, optional):

  • shortenLinks: Boolean, optional
     Alle Links in der Nachricht mit Standard-Kurz-URL-Dienst (ow.ly, ht.ly oder Wunsch-URL) des Nutzers kürzen. Standardmäßig auf false (falsch) eingestellt.
  • timestamp: Boolean ODER Int, optional
     Den Planer öffnen und den Zeitstempel einfügen (UTC, in Sekunden) ODER, wenn true (wahr) eingestellt wurde, wird der Planer ohne Standardzeit geöffnet. Standardmäßig auf false (falsch) eingestellt. Die Zeit wird in Sekunden angegeben, z. B.: {scheduleTimestamp: 1460520580}
  • twitterReplyToId: String, optional
     Einen neuen Tweet als Antwort auf einen vorhandenen Tweet verfassen. Wenn eine gültige String-ID für einen vorhandenen Tweet angegeben wird, behandelt der Composer die neue Nachricht als Teil einer Unterhaltung. Hinweis: Die Nachricht muss einen gültigen Twitter-Handle mit einem @ enthalten. Beispiel: @hootsuite Das hier ist eine Antwort!

Beispiel:

hsp.composeMessage( 'message text', { shortenLinks: true } );

hsp.retweet(id, screenName)

Öffnet den Retweet-Dialogprozess im Hootsuite Dashboard für Tweets mit ID zum Retweeten über den screenName.

ID: (string)

Twitters id_str tweetID für den Tweet, der retweetet werden soll

screen_name: (String, optional)

Twitter-Handle, mit dem Sie retweeten wollen

Beispiel:

hsp.retweet( '369937169529708544', 'Hootsuite' );

hsp.attachFiletoMessage

Anhänge an den Dialog „In sozialen Netzwerken teilen“ im Hootsuite Dashboard senden. Die Dateigröße darf maximal 5 MB betragen.

data: (JSON-Objekt)

  • url:  String, erfoderlich 
  • name:  String, erfoderlich
  • extension: String, erfoderlich
  • timestamp: Int oder String, muss die aktuelle Zeit in Sekunden sein, erforderlich
  • token: String, erfoderlich
    • user_id: String, muss der aktuelle Nutzer sein, aus URL-Parameter abrufbar, erforderlich
    • timestamp: String, sollte mit vorherigem Zeitstempel übereinstimmen, erforderlich
    • url: String, sollte mit vorheriger URL übereinstimmen, erforderlich
    • secret: String, zu finden im App-Bereich in Ihrem Entwicklerportal

Supported File Types:

  • Bilddateien: jpg, jpeg, gif, png
  • Dokumentdateien: doc, docx, pdf, xls, xlsx, ppt, pptx, odt, ods, odp, txt, rtf, csv, psd, psb, ai, eps, fla, mp3

Beispiel: 

hsp.attachFileToMessage ({url: 'http://abc.com/abc.jpg',name: 'abc',extension: 'jpg',timestamp: 1434583080,token: SHA512(user_id + timestamp + url + secret)});

hsp.customUserInfo(data)

Öffnet ein Popup-Fenster mit Nutzerinformationen.

data: (JSON-Objekt)

Beispiel:

var data = { &quot;fullName&quot;: &quot;David Chan&quot;, &quot;screenName&quot;: &quot;@chandavid&quot;, &quot;avatar&quot;: &quot;https://d1cmhiswqj5a7e.cloudfront.net/http%3A%2F%2Fplacehold.it%2F30x30%2F444&quot;, &quot;profileUrl&quot;: &quot;https://twitter.com/chandavid&quot;, &quot;userLocation&quot;: &quot;Vancouver, BC&quot;, &quot;bio&quot;: &quot;JavaScript/web/martini developer. Working on @Hootsuite. Making by breaking.&quot;, &quot;extra&quot;: [ {&quot;label&quot;: &quot;Age&quot;, &quot;value&quot;: &quot;Unknown&quot;}, {&quot;label&quot;: &quot;Gender&quot;, &quot;value&quot;: &quot;Male&quot;} ], &quot;links&quot;: [ {&quot;label&quot;: &quot;Hootsuite&quot;, &quot;url&quot;: &quot;https://hootsuite.com&quot;}, {&quot;label&quot;: &quot;Blog&quot;, &quot;url&quot;: &quot;https://blog.hootsuite.com&quot;} ]};

hsp.showCustomPopup(src, title, width, height)

Zeigt ein modales Popup-Fenster mit einem iFrame an, der Inhalte von der angegebenen URL anzeigt. Beim Schließen löst das Fenster das Ereignis closePopUp() aus.

src: (string)

URL zum Inhalt, der im Popup angezeigt werden soll

title: (string)

Der Titel, der im Popup-Fenster angezeigt wird

Breite: (int)

Die Breite des Popups in Pixel. Für die Breite gelten folgende Beschränkungen:

  • Wenn nichts angegeben wird, beträgt die Breite standardmäßig 640 Pixel.
  • Die Breite muss mindestens 300 Pixel betragen.
  • Die Breite darf maximal 900 Pixel betragen.

Höhe: (int)

Die Höhe des Popups in Pixel. Für Höhe gelten folgende Beschränkungen:

  • Wenn nichts angegeben wird, beträgt die Höhe standardmäßig 445 Pixel.
  • Die Höhe muss mindestens 225 Pixel betragen.
  • Die Höhe darf maximal 500 Pixel betragen.

Beispiel:

hsp.showStatusMessage('Done!', 'success') ;

Wichtig:

Bitte initialisieren Sie die hsp im benutzerdefinierten Popup nicht erneut. Ihr Popup sollte keine hsp-Funktionen außer closeCustomPopup(apiKey, pid) verwenden.

If your popup and app stream/plugin are in the same domain, it is recommended that your popup uses the following javascript function to communicate back to your stream/plugin and run the hsp function: window.parent.frames[apiKey_pid].hsp.some_function()

Hinweis: hsp-Ereignisbindungsfunktionen sind im benutzerdefinierten Popup nicht verfügbar.

hsp.closeCustomPopup(apiKey, pid)

Schließt das modale Popup-Fenster.

Hinweis: Bitte vergewissern Sie sich, dass die iFrame-Seite im benutzerdefinierten Popup-Fenster und die App-Stream-Seite sich eine Domain teilen. Sie müssen (und sollten) hsp.init() in der iFrame-Seite nicht erneut aufrufen, fügen Sie einfach hsp.js ein und rufen Sie hsp.closeCustomPopup(apiKey, pid) auf. Sie können JavaScript folgendermaßen verwenden, um zwischen dem Popup und dem Stream zu kommunizieren:

window.parent.frames[&quot;<%= apiKey %>_<%= pid %>&quot;].location.reload();

API-Schlüssel: (string)

Der API-Schlüssel Ihrer App

pid: (string)

Die PID wird jeder einzelnen Installation eines App-Streams (oder Plugins) zugeordnet. Sie können die PID für jeden App-Stream aus der URL-Anfrage ablesen, die Ihr Server erhält. Zum Beispiel:

https://demo.ca/stream.html?lang=en&amp;theme=blue_steel&amp;timezone=-25200&amp;pid=60956&amp;uid=136

hsp.showImagePreview(src, externalUrl)

Zeigt ein Bild in einem Popup-Fenster, mit optionaler Verlinkung zu einer externen URL.

src: (string)

Bild-URL

externalURL: (string)

URL, die geöffnet wird, wenn der Nutzer das Bild anklickt

hsp.showStatusMessage(message, type)

Zeigt eine Benachrichtigung oben in der Mitte im Hootsuite Dashboard.

Nachricht: (string)

Sollte kurz sein, max. 70 Zeichen.

type: (String):

Kann eins der Folgenden sein:

  • info: blau unterlegt
  • Fehler: rot unterlegt
  • warning: gelb unterlegt
  • success: grün unterlegt

hsp.updatePlacementSubtitle(name)

Aktualisiert den Untertitel vom Stream der App.

Hinweis: Hierfür muss der App-Receiver eingerichtet sein (siehe oben).

Name (String)

Max. 35 Zeichen

hsp.showUser(twitterHandle)

Öffnet ein Popup-Fenster mit Nutzerinformationen für den jeweiligen Twitter-Nutzernamen.

twitterHandle: (string)

Twitter-Nutzername

Beispiel:

hsp.showUser('hootsuite_help');

showUser.f203dc7a

hsp.showFollowDialog(twitterHandle, isFollow)

Öffnet ein Dialog-Fenster, um einem Twitter-Nutzer zu folgen oder nicht mehr zu folgen.

twitterHandle: (string)

Twitter-Nutzername

isFollow: (&quot;bool string&quot;)

„true“ zum Folgen, „false“, um nicht mehr zu folgen

Beispiel:

hsp.showFollowDialog('hootsuite_help', 'true');

showFollowDialog.ff5cb783

hsp.getTwitterAccounts(callback)

Stellt eine Liste (Array) aller Twitter-Profile (Nutzernamen) zusammen, die der eingeloggte Nutzer seinem Hootsuite-Konto hinzugefügt hat.

callback: (Funktion)

Funktion, die Array-Strings akzeptiert

Beispiel:

// this would log: [&quot;twitteruser_123&quot;, &quot;twitter_user_abcd&quot;]hsp.getTwitterAccounts(console.log);

hsp.assignItem(item)

Ein Element aus dem App-Stream zuweisen. Parameter-Element ist ein JavaScript-Objekt, das alle nötigen Informationen des Elements enthält, das zugewiesen wird. Die API-Callback-URL aus den App-Einstellungen im Entwicklerportal muss für die Funktion vorhanden sein.

data: (JSON-Objekt)

  • messageID: String, sollte die ID des Elements sein, erforderlich
  • messageAuthor: String, erfoderlich
  • messageAuthorAvatar: String, erfoderlich
  • Nachricht: String, erfoderlich
  • timestamp: Int oder String, muss die aktuelle Zeit in Sekunden sein, optional

Beispiel:

var data = { &quot;messageId&quot;: &quot;123456&quot;, //required, ID of the item to be assigned &quot;messageAuthor&quot;: &quot;Joe&quot;, //required &quot;messageAuthorAvatar&quot;: &quot;https://www.somesite.com/useravatar/123.png&quot;, //required. Do not include query strings &quot;message&quot;: &quot;Hi, I'm having an issue with my account&quot;, //required &quot;timestamp&quot;: &quot;1431023368&quot; //Unix Timestamp format. Optional, but recommended}

Wenn eine Zuweisung ausgelöst oder aktualisiert wird, sollte die App das entsprechende CSS anzeigen (siehe Template für Stilvorlagen).

hsp.resolveItem(item)

Ein Element aus dem App-Stream erledigen.

Anatomie:

{ assignmentId: &quot;654321&quot; //required, ID of the assignment in Hootsuite dashboard from both callbacks}

API-Ereignisse

In diesem Abschnitt werden die verfügbaren Ereignisse und erwarteten Behandlungsroutine-Signaturen beschrieben, die durch Verwendung von hsp.bind() verfügbar sind.

refresh()

Wird ausgelöst, wenn die App-Spalte aktualisiert wird, entweder vom Nutzer im Stream oder als Teil einer Dashboard-Aktualisierung.

Callback-Format: eine Funktion ohne Parameter

Beispiel:

function refreshHandler () { }

Hinweis: Die Verwendung von window.location.reload() wird NICHT empfohlen. Eine der elegantesten Lösungen wäre es, neue Nachrichten per AJAX abzufragen, nur neue Nachrichten in die DOM einzufügen und dabei vorhandene Nachrichten unberührt zu lassen.

dropuser()

Wird ausgelöst, wenn ein Nutzer den Avatar eines Twitter-Nutzers vom Hootsuite Dashboard in Ihren App-Stream zieht.

Callback-Format: eine Funktion mit zwei Parametern – dem Twitter-Handle des Nutzers und der ID des Tweets, aus dem der Nutzer gezogen wurde

Beispiel:

function dropUserHandler ( username, tweetId ) { // ...}

sendcomposedmsgtoapp()

Fügt ein App-Plugin zur nativen Profilauswahl für soziale Netzwerke von Hootsuite hinzu. Nutzer kann direkt aus dem Hootsuite-Nachrichtenfeld Nachrichten ans Plugin senden.

Hinweis: Sie müssen unser Administrationsteam für das App-Verzeichnis kontaktieren, um diese Ereignisregistrierung für Ihr App-Plugin zu aktivieren.

Callback-Format: ein Java-Script-Objekt mit den Nachrichtendaten

Nachrichtenobjekt-Datenstruktur:

Message: (Objekt) text: (String)

Beispiel:

function sendComposedMsgToAppHandler (message) { // ...}

closepopup()

Wird ausgelöst, wenn ein benutzerdefiniertes Popup, das von Ihrem App-Stream geöffnet wurde, geschlossen wird.

Callback-Format: eine Funktion ohne Parameter

Beispiel:

function closePopupHandler () { // ...}

sendtoapp()

Registering for this event will cause users to see a menu item reading Send to <app stream>… in Twitter and Facebook stream message menus. This event is fired when users click on the menu item. 

Wenn Sie einschränken möchten, unter welchen sozialen Netzwerken das Plugin angezeigt wird, sehen Sie in den Details für hsp.init nach.

Callback-Format: ein Java-Script-Objekt mit den Nachrichtendaten

Nachrichtenobjekt-Datenstruktur:

Twitter

Message: (Objekt) post: (Objekt) network: (String) href: (String) URL zum ursprünglichen Beitrag id: (String) externe Beitrags-ID datetime: (String) Datum und Zeit nach ISO 8601 source: (String) z. B. Hootsuite content: (Objekt) body: (String) bodyhtml: (String) user: (Objekt) userid: (String) username: (String) conversations: (Array) id: (Int/String) uid: (Int) name: (String) datetime: (String) text: (String) source: (String) nur Twitter retweetcount: (String) nur Twitter geo: (String) nur Twitter attachments: (Array) items: (Array) target: (String) URL zur Ressourcenseite originurl: (String) URL zur tatsächlichen Ressource thumbnailsrc: (String) URL zum Vorschaubild title: (String) type: (String) Link | Video | Fotoalbum | Foto &quot;favoritecount&quot;:10}Profile: (Objekt) networks: (String) created_at (String) description (String) followers_count (Int) friends_count (Int) id (String) id_str (String) lang (String) listed_count (Int) location (String) name (String) network (String) profile_image_url (String) profile_image_url_https (String) screen_name (String) statuses_count (Int) time_zone (String) url (String) utc_offset (Int) verified (Boolean) &quot;counts&quot;: { &quot;likes&quot;: 19, &quot;shares&quot;: 1, &quot;replies&quot;: 1

Facebook

Message: (Objekt) post: (Objekt) network: (String) href: (String) URL zum ursprünglichen Beitrag id: (String) externe Beitrags-ID datetime: (String) Datum und Zeit nach ISO 8601 source: (String) z. B. Hootsuite content: (Objekt) body: (String) bodyhtml: (String) user: (Objekt) userid: (String) username: (String) conversations: (Array) id: (Int/String) uid: (Int) name: (String) datetime: (String) text: (String) source: (String) nur Twitter retweetcount: (String) nur Twitter geo: (String) nur Twitter attachments: (Array) items: (Array) target: (String) URL zur Ressourcenseite originurl: (String) URL zur tatsächlichen Ressource thumbnailsrc: (String) URL zum Vorschaubild title: (String) type: (String) Link | Video | Fotoalbum | FotoProfile: (Objekt) networks: (String) created_at (String) description (String) followers_count (Int) friends_count (Int) id (String) id_str (String) lang (String) listed_count (Int) location (String) id: name: concatedName: name (string) picture (String) website (String)

 

Beispiel für ein Nachrichtenobjekt:

{ &quot;post&quot;: { &quot;network&quot;: &quot;twitter&quot;, &quot;href&quot;: &quot;https://twitter.com/hootsuite/status/1000000&quot;, &quot;id&quot;: &quot;10000000000000000&quot;, &quot;datetime&quot;: &quot;2015-05-07T17:15:54.000Z&quot;, &quot;source&quot;: &quot;Hootsuite&quot;, &quot;counts&quot;: { &quot;likes&quot;: 16, &quot;shares&quot;: 9, &quot;replies&quot;: null }, &quot;content&quot;: { &quot;body&quot;: &quot;5 minutes is all you need to start a conversation: http://t.co/LO0uGuip7q Learn from our #LightningTalks http://t.co/8tplqYoZM1&quot;, &quot;bodyhtml&quot;: &quot;5 minutes is all you need to start a conversation: http://t.co/LO0uGuip7q Learn from our #LightningTalks http://t.co/8tplqYoZM1&quot; }, &quot;user&quot;: { &quot;userid&quot;: 100000000, &quot;username&quot;: &quot;hootsuite&quot; }, &quot;attachments&quot;: [ { &quot;type&quot;: &quot;image&quot;, &quot;url&quot;: &quot;https://pbs.twimg.com/media/CEa01uPWMAE_OwD.jpg&quot;, &quot;title&quot;: &quot;&quot;, &quot;items&quot;: { &quot;target&quot;: &quot;https://pbs.twimg.com/media/CEa01uPWMAE_OwD.jpg&quot; } } ], &quot;conversation&quot;: [] }, &quot;profile&quot;: { &quot;network&quot;: &quot;TWITTER&quot;, &quot;created_at&quot;: &quot;Fri Oct 31 22:26:54 +0000 2008&quot;, &quot;description&quot;: &quot;Social media news and tips from the world’s most widely used social relationship platform. Sign up for free: http://t.co/Zmrb0hY23s Support: @Hootsuite_Help&quot;, &quot;followers_count&quot;: 6754899, &quot;friends_count&quot;: 1594873, &quot;id&quot;: &quot;100000000&quot;, &quot;id_str&quot;: &quot;100000000&quot;, &quot;lang&quot;: &quot;en&quot;, &quot;listed_count&quot;: 42070, &quot;location&quot;: &quot;Vancouver, Canada&quot;, &quot;name&quot;: &quot;Hootsuite&quot;, &quot;profile_image_url&quot;: &quot;http://pbs.twimg.com/profile_images/595315902276468736/6KYlfmqu_normal.jpg&quot;, &quot;profile_image_url_https&quot;: &quot;https://pbs.twimg.com/profile_images/595315902276468736/6KYlfmqu_normal.jpg&quot;, &quot;screen_name&quot;: &quot;hootsuite&quot;, &quot;statuses_count&quot;: 20947, &quot;time_zone&quot;: &quot;Pacific Time (US &amp; Canada)&quot;, &quot;url&quot;: &quot;http://t.co/3Xvuxw2JEG&quot;, &quot;utc_offset&quot;: -25200, &quot;verified&quot;: true }}

Beispiel:

function sendToAppHandler ( message ) { // ...}

Unterstützte Social Media-Netzwerkstreams: Das hier sind sämtliche einzelne Social Media-Netzwerkstreams, die das Auslösen von Nachrichtenkomponenten unterstützen.

Unterstützt

Twitter: Home, Erwähnungen, Retweets, Follower, Listen, Favoriten, Meine Tweets, Suche, Posteingang, Postausgang, Stichwort (Als Stream speichern)
Facebook: Chronik, Seite, Suche

sendcommenttoapp()

Durch Registrierung für dieses Ereignis senden Nutzer einen einzelnen Facebook-Kommentar (ohne Kommentarantworten) an Ihre App.

Callback-Format: ein JavaScript-Objekt mit den Nachrichtendaten

Nachrichtenobjekt-Datenstruktur:

username: (string)useravatar: (string) url to imageuserid: (string)commentid: (string)postid: (string)postlink: (string) url to postlikes: (int)type: (string) text: (string)timestamp: (int) Unix format timestamp in seconds

Beispiel für ein Nachrichtenobjekt:

{&quot;username&quot;: &quot;Allen Zhou&quot;,&quot;useravatar&quot;: &quot;https://fbcdn-profile-a.akamaihd.net/hprofile-ak-xtp1/v/t1.0-1/p50x50/11078149_10152993014144302_7237170494591939114_n.jpg?oh=397d69facc666116523459bbb98bb7be&amp;oe=564C3010&amp;__gda__=1446534108_47569285a14096ec068d15c58fe17499&quot;,&quot;userid&quot;: &quot;10152150253249302&quot;,&quot;commentid&quot;: &quot;10155813290305438_10155814868730438&quot;,&quot;postid&quot;: &quot;609745437_10155813290305438&quot;,&quot;postlink&quot;: &quot;http://www.facebook.com/609745437/posts/10155813290305438&quot;,&quot;likes&quot;: 1,&quot;type&quot;: &quot;FACEBOOK&quot;,&quot;text&quot;: &quot;I've stared into the heart of the heart for the past 5 hours trying to find its meaning.&quot;,&quot;timestamp&quot;: 1433399132}

Beispiel:

hsp.bind('sendcommenttoapp', function(message){//code here});

Unterstützte Facebook-Streams: Das hier sind sämtliche Facebook-Netzwerkstreams, die das Auslösen von Nachrichtenkomponenten unterstützen.

Unterstützt

Facebook: Chronik, Seite

sendprofiletoapp()

Durch Registrierung für dieses Ereignis können Nutzer ein Menü-Element in Twitter- oder Facebook-Profilmenüs sehen. Dieses Ereignis wird ausgelöst, wenn Nutzer das Menü-Element anklicken.

Callback-Format: ein JavaScript-Objekt mit den Profildaten

Profilobjekt-Datenstruktur:

Twitter

Profile: (Objekt)network (String) created_at (String) description (String) followers_count (Int) friends_count (Int) id (String) id_str (String) lang (String) listed_count (Int) location (String) name (String) network (String) profile_image_url (String) profile_image_url_https (String) screen_name (String) statuses_count (Int) time_zone (String) url (String) utc_offset (Int) verified (Boolean)Post: (Objekt) href: (String) URL zum ursprünglichen Beitrag id: (String) externe Beitrags-ID datetime: (String) Datum und Zeit nach ISO 8601 source: (String) nur Twitter, z. B. iPhone-App network: (String) content: (Objekt) body: (String) bodyhtml: (String) user: (Objekt) userid: (String) nur Facebook und Twitter username: (String) conversations: (Array) id: (Int/String) uid: (Int) name: (String) datetime: (String) text: (String) source: (String) nur Twitter retweetcount: (String) nur Twitter geo: (String) nur Twitter attachments: (Array) items: (Array) target: (String) URL zur Ressourcenseite originurl: (String) URL zur tatsächlichen Ressource thumbnailsrc: (String) URL zum Vorschaubild title: (String) type: (String) Link | Video | Fotoalbum | Foto favoritecount: (String)Profile: (Objekt) networks: (String) created_at (String) description (String) followers_count (Int) friends_count (Int) id (String) id_str (String) lang (String) listed_count (Int) location (String) name (String) network (String) profile_image_url (String) profile_image_url_https (String) screen_name (String) statuses_count (Int) time_zone (String) url (String) utc_offset (Int) verified (Boolean)

 Facebook

Profile: (Objekt) network: (String) bio: (String) first_name: (String) gender: (String) id: (String) last_name: (String) link: (String) locale: (String)location: (Objekt/Array) id: (Wert) name: (String) concatedName: (String) name: (String) picture: (String) website: (URL)post: (Objekt) network: (String) href: (String) URL zum ursprünglichen Beitrag id: (String) externe Beitrags-ID datetime: (String) Datum und Zeit nach ISO 8601 source: (String) nur Twitter, z. B. iPhone-App content: (Objekt) body: (String) bodyhtml: (String) user: (Objekt) username: (String) userid: (String) nur Facebook und Twitterconversations: (Array) id: (Int/String) uid: (Int) name: (String) text: (String) datetime: (String) geo: (String) nur Twitter retweetcount: (String) nur Twitter source: (String) nur Twitter profileurl: (String) nur Facebook likes: (Int) nur Facebook attachments: (Array) items: (Array) target: (String) URL zur Ressourcenseite originurl: (String) URL zur tatsächlichen Ressource thumbnailsrc: (String) URL zum Vorschaubild title: (String) type: (String) Link | Video | Fotoalbum | FotoProfile: (Objekt) network (String) bio (String) first_name (String) gender (String) id (String) last_name (String) link (String) locale (String)location: (Objekt/Array) id: (Wert) name: (String) concatedName: (String) name (String) picture (String) website: (URL)

sendassignmentupdates()

Element wird vom Hootsuite Dashboard ausgelöst, weches Zuweisungs-Callbacks an die App sendet.

Callback-Format: ein JavaScript-Objekt mit den Aktualisierungsinformationen

Anatomie:

{ status: &quot;OPEN&quot; || &quot;RESOLVED&quot; assignmentId: <assignment ID in Hootsuite dashboard> messageId: <message ID of the assigned item> toName: <name of the user or team the item is assigned to> createdDate: &quot;yyyy-mm-dd hh:mm:ss&quot; //in UTC modifiedDate: &quot;yyyy-mm-dd hh:mm:ss&quot; //in UTC}

API-Callback

Die SDK bildet einen Backend-Punkt für Ihre App.  Damit die App und das Hootsuite Dashboard miteinander kommunizieren können, müssen Sie in Ihrer App eine APICallbackURL im Entwicklerportal bereitstellen. Hootsuite sendet eine POST-Anfrage an die angegebene APICallbackURL, um ein Ereignis zu senden. WICHTIGER HINWEIS: Bei jeder Anfrage wird das App-Verzeichnis SSO zur Authentifizierung benötigt. 

Durch die Zuweisungs-API-Funktion kann ein Nutzer ein Element aus Ihrem App-Stream einem anderen Hootsuite-Nutzer zuweisen und es sowohl vom App-Stream also auch vom Hootsuite Dashboard aus neu zuweisen oder erledigen (auch wenn die App von anderen Nutzern nicht installiert wurde). Zur Verwendung der APICallbackURL ist eine SSO-Authentifizierung nötig. 

Zuweisungsereignisanfrage

Jedes Mal, wenn eine Zuweisung erstellt oder aktualisiert wird, wird eine POST-Anfrage an die APICallbackURL gesendet.

{ action: &quot;Assignment&quot; sso_i: <user_id> sso_ts: <timestamp> sso_token: <token> assignmentId: <assignment ID in Hootsuite dashboard> status: &quot;OPEN&quot; || &quot;RESOLVED&quot; messageId: <message id of the assigned item that the app provided> Nachricht: <message context>toType: &lt;'MEMBER'|'TEAM'&gt;toTeamId:toTeamName: creatorId: creatorName: fromId: fromName: toId: toName: createdDate: &quot;yyyy-mm-dd-hh-mm-ss&quot; modifiedDate: &quot;yyyy-mm-dd-hh-mm-ss&quot;}