API

SDK del directorio de aplicaciones

IPA (v2.0, actual)

Cómo funciona

JSApi es el portal de comunicación del directorio de aplicaciones de SDK entre tu aplicación y el panel de control de Hootsuite. La IPA permite a los desarrolladores de aplicaciones asignar funciones que envían eventos al panel de control de Hootsuite y recibir notificaciones de eventos del panel de control de Hootsuite dentro de una aplicación.

Las interacciones entre Hootsuite y tu aplicación están habilitadas por JSApi. La biblioteca SDK de Javascript, hsp.js, ofrece funciones que impulsan la funcionalidad específica en el panel de control de Hootsuite. hsp.js también permite la inicialización y registro de tu aplicación para recibir eventos desde el panel de control de Hootsuite.

Nota: Asegúrate de que tu servidor permite las peticiones POST.

Configuración

Se requiere lo siguiente para utilizar la IPA JS:

  • Biblioteca JS - La biblioteca hsp.js permite la comunicación bidireccional entre tu aplicación y el panel de control de Hootsuite. Incluye este archivo en la página principal de tu aplicación:

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

Por ejemplo, la referencia a este archivo en tu página principal aparecería así:

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

Funciones de la IPA, eventos y retrollamada

La comunicación desde tu aplicación al panel de control de Hootsuite se produce usando las funciones disponibles en hsp.js.
 
La comunicación desde el panel de control de Hootsuite a tu aplicación está habilitada a través de events. Los events para los que tu aplicación está interesada en recibir alertas están registrados con llamadas a la función hsp.bind() indicando el Evento de interés y la función de retrollamada que ejecutará tu aplicación cuando el Evento se activa.

Funciones

  • init - Inicializa la IPA JS
  • bind - Registra un evento del panel de control de Hootsuite para que se gestione con la aplicación y un controlador de eventos asociado
  • getMemberInfo - Se utiliza junto con otros métodos de asignación y retrollamadas
  • saveData - Se utiliza con getData para retener la configuración de usuario de una sesión a otra
  • getData - Se utiliza con saveData para  retener la configuración de usuario de una sesión a otra
  • clearStatusMessage - Elimina todos los mensajes de estado visibles en ese momento
  • Componer mensaje - Abre el diálogo de Compartir a redes sociales
  • Retuit - Inicia el proceso de diálogo de retuit
  • attachFileToMessage - Sends attachments to the compose box
  • customUserInfo - Abre una ventana emergente de información de usuario
  • getTwitterAccounts - Obtiene una lista de todos los perfiles de Twitter para el usuario que ha iniciado sesión
  • showCustomPopup - Muestra un diálogo emergente modal que contiene un marco incorporado con contenido específico de aplicación
  • closeCustomPopup - Cierra el diálogo emergente modal
  • showFollowDialog - Abre una ventana de diálogo para seguir o dejar de seguir a un usuario de Twitter
  • showImagePreview - Muestra una imagen en una ventana emergente
  • showStatusMessage - Muestra una notificación
  • showUser - Abre una ventana emergente de información de usuario
  • updatePlacementSubtitle - Actualiza el subtítulo de la columna de la aplicación
  • assignItem - Asigna algunos contenidos de mensaje de texto a un usuario de Hootsuite
  • resolveitem - Artículo resuelto en la columna de aplicación

Eventos

  • closepopup - Se activa cuando una ventana emergente personalizada abierta por tu columna de aplicación está cerrada
  • dropuser - Se activa cuando un usuario arrastra y suelta un avatar de usuario de Twitter desde el panel de control de Hootsuite en tu columna de aplicación
  • Actualizar - Se activa cuando la columna de la aplicación se actualiza, ya sea por el usuario dentro de la columna, o como parte de una actualización del panel de control
  • 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 - El registro para este evento hará que los usuarios envíen un comentario de Facebook individual (sin respuestas de comentario) a tu aplicación
  • sendcomposedmsgtoapp - Añade un complemento de aplicación al selector de perfil de la red social nativa de Hootsuite. El usuario puede enviar mensajes al complemento directamente desde el cuadro de redacción de mensaje de Hootsuite
  • sendprofiletoapp - El registro para este evento hará que los usuarios vean un elemento de menú en los menús de perfil de Twitter, Facebook, LinkedIn y páginas de Google+. El evento se activa cuando el usuario hace clic en el elemento de menú
  • sendassignmentupdates - El registro de este evento permitirá que una aplicación reciba notificación de sus actualizaciones de asignación

Retrollamada

Funciones de la IPA

En esta sección se describe el conjunto de funciones disponibles y signaturas de función esperadas.

hsp.init(params)

Inicializa la IPA JS y carga los archivos de temas CSS.

params: objeto:

  • Subtítulo: (cadena de caracteres, opcional)
  • El subtítulo de tu aplicación, que se mostrará en el título de la columna.
  • callBack: (función, opcional)
     Init enviará un mensaje de error a la función callBack después de la inicialización. El mensaje es: No hay error si la inicialización se realiza correctamente.
  • sendToAppDisableList: Especifica las redes sociales que tu complemento sendtoapp no ​​debería mostrar con ( 'Facebook', 'Twitter')
  • sendProfileToAppDisableList: Especifica las redes sociales que tu complemento sendprofiletoapp no ​​debería mostrar con ('Facebook', 'Twitter')

Ejemplo:

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

hsp.bind (eventName, callback)

Registra un controlador de eventos para un evento específico.

eventName: (string)

Nombre del evento que hay que gestionar, puede ser uno de los siguientes:

  • closepopup - Se activa cuando una ventana emergente personalizada abierta por tu columna de aplicación está cerrada
  • dropuser - Se activa cuando un usuario arrastra y suelta un avatar de usuario de Twitter desde el panel de control de Hootsuite en tu columna de aplicación
  • Actualizar - Se activa cuando la columna de la aplicación se actualiza, ya sea por el usuario dentro de la columna, o como parte de una actualización del panel de control
  • sendtoapp - El registro para este evento hará que los usuarios vean un elemento de menú que dice Send to <app stream>...en menús de mensaje de columna de Twitter y Facebook. Este evento se activa cuando el usuario hace clic en el elemento de menú

callback: (función)

Función para gestionar la retrollamada, los parámetros de la función están determinados por el evento. Comprueba la sección de eventos para obtener más información sobre los formatos de retrollamada esperados.

Ejemplo:

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

Como se indica en la Prácticas recomendadas sección, sería conveniente que la columna no se refrescara cuando el usuario esté utilizándola (por ejemplo, al mandar mensajes, mostrar información detallada o cuando estás desplazándote en la parte inferior de la columna). Un ejemplo podría ser el siguiente:

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 }});

NO se recomienda el uso de window.location.reload(). Una de las soluciones más elegantes sería realizar una encuesta en busca de nuevos mensajes a través de AJAX e introducir solo mensajes nuevos en el DOM, dejando intactos los mensajes existentes.

hsp.getMemberInfo(function(info)

Este método está destinado a ser utilizado junto con los otros métodos de asignaciones y retrollamadas (assignItem, resolveItem, solicitud de asignación de evento).Puesto que una asignación se puede asignar a un equipo o un miembro de equipo, tu aplicación tiene que saber de qué equipos es miembro tu usuario.Esto puede recuperarse usando getMemberInfo.

Recomendamos ejecutar a este método después de hsp.init.

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

Conservar datos del usuario

El hsp.saveData y hsp.getData están diseñados para usarse juntos con el fin de retener la configuración de usuario de una sesión a otra (es decir, tokens de usuario, configuración de columna única y filtros establecidos por el usuario en la aplicación). Los métodos se invocan en una base por columna contra la PID.

Los datos se pueden guardar en cualquier formato de cadena.

hsp.saveData(function)

hsp.saveData(data, callback); //Guarda los datos en la columna de aplicación de miembro, y tiene la opción de obtener objetos de datos que acabas de guardar en la retrollamada para que compruebe la columna de aplicación
hsp.getData(callback); //Recupera los datos guardados en la columna de aplicación de miembro

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()

Elimina todos los mensajes de estado visibles en ese momento.

hsp.composeMessage(message, params)

- Abre el diálogo de Compartir a redes sociales en el panel de control de Hootsuite.

Si tu mensaje contiene una imagen, ten en cuenta también incorporar el hsp.attachFiletoMessage Método

Mensaje: (string)

Se aplican las reglas de mensajes de Twitter; por ejemplo, redactar un MD a @Hootsuite sería: d hootsuite <your message here>

params: (objeto, opcional):

  • shortenLinks: booleano, opcional
     Acorta todos los enlaces que se encuentran en el mensaje con el acortador de URL por defecto del usuario (ow.ly / ht.ly / o vanity URL). El valor predeterminado es falso.
  • timestamp: booleano O int, opcional
     Abre el Programador y lo rellena con la marca temporal (en UTC, en segundos) O si pasa verdadero, entonces el programador se abrirá sin tiempo predeterminado. El valor predeterminado es falso. El tiempo se especifica en segundos, es decir: {scheduleTimestamp: 1460520580}
  • twitterReplyToId: cadena de caracteres, opcional
     Redacta un nuevo tuit en respuesta a un tuit existente. Si un ID de cadena válido pasa para un tuit existente, entonces el redactor tratará el nuevo mensaje como parte de la conversación. Nota: El mensaje deberá contener un nombre de usuario de Twitter válido con el símbolo de '@'. Ej.: @hootsuite ¡Esto es una respuesta!

Ejemplo:

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

hsp.retweet(id, screenName)

Abre el proceso de diálogo de retuit en el panel de control de Hootsuite para que un tuit con ID se retuitee por nombre de usuario.

id: (string)

tweetId id_str de Twitter para retuitear el tuit

Nombre de usuario: (cadena de caracteres, opcional)

El nombre de usuario de Twitter con el que quieres retuitear

Ejemplo:

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

hsp.attachFiletoMessage

Envía archivos adjuntos al diálogo de Compartir en redes sociales en el panel de control de Hootsuite. Los archivos tienen un límite de tamaño de 5 MB.

datos: (objeto JSON)

  • URL:  cadena de caracteres, necesaria 
  • nombre:  cadena de caracteres, necesaria
  • extensión: cadena de caracteres, necesaria
  • timestamp: int o cadena, debe ser tiempo actual en segundos, necesaria
  • token: cadena de caracteres, necesaria
    • identidad de usuario: cadena, debe ser el usuario actual, puede recuperarse desde el parámetro url, necesaria
    • timestamp: cadena, debería ser la misma que la marca de tiempo anterior, necesaria
    • URL: cadena, debería ser la misma que la URL anterior, necesaria
    • secreto: cadena, se puede encontrar en la sección de aplicación de tu Portal dev

Supported File Types:

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

Ejemplo: 

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

hsp.customUserInfo(data)

Abre una ventana emergente de información de usuario.

datos: (objeto JSON)

Ejemplo:

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)

Muestra una ventana emergente modal que contiene un marco incorporado que muestra contenido de la URL especificada. Al cerrar el diálogo se activa el evento closePopUp().

src: (string)

URL del contenido que se muestra en la ventana emergente

title: (string)

El título que aparece en la ventana emergente

Anchura: (int)

La anchura en píxeles de la ventana emergente. El ancho tiene las siguientes limitaciones:

  • Si no se especifica, el valor predeterminado de ancho es 640 píxeles
  • El ancho mínimo es de 300 píxeles.
  • La anchura máxima es de 900 píxeles.

Altura: (int)

La altura en píxeles de la ventana emergente. La altura tiene las siguientes limitaciones:

  • Si no se especifica, el valor predeterminado de altura es 445 píxeles
  • La altura mínima es de 225 píxeles.
  • La altura máxima es de 500 píxeles.

Ejemplo:

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

Importante:

Por favor, no inicialices hsp de nuevo dentro de la ventana emergente personalizada. Tu ventana emergente no debería utilizar ninguna función hsp distinta de closeCustomPopup(apikey, pid).

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()

Nota: las funciones fr unión de eventos de hsp no están disponibles en la ventana emergente personalizada.

hsp.closeCustomPopup(apiKey, pid)

Cierra la ventana emergente modal.

Nota: Por favor, asegúrate de que la página de marco incorporado en la ventana emergente personalizada y la página de columna de aplicación comparten el mismo dominio. No necesitas (y no deberías) volver a ejecutar hsp.init() en la página de marco incorporado, simplemente incluye hsp.js y ejecuta hsp.closeCustomPopup(apiKey, pid). Puedes utilizar JavaScript para comunicarte entre la ventana emergente y la columna de la siguiente manera:

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

Clave API: (string)

La clave IPA de tu aplicación

pid: (string)

El PID se asocia con cada instalación única de una columna de aplicación (o complemento). Puedes obtener el PID de cada columna de aplicación desde la solicitud de URL que obtiene tu servidor . Por ejemplo:

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

hsp.showImagePreview(src, externalUrl)

Muestra una imagen en una ventana emergente, que enlaza opcionalmente con una URL externa.

src: (string)

URL de imagen

externalURL: (string)

URL que se abre si el usuario hace clic en la imagen

hsp.showStatusMessage(message, type)

Muestra una notificación en la parte superior central del panel de control de Hootsuite.

Mensaje: (string)

Debería ser breve, máx. 70 caracteres.

type: (cadena)

Puede ser uno de los siguientes:

  • información: fondo azul
  • Error: fondo rojo
  • advertencia: fondo amarillo
  • éxito: fondo verde

hsp.updatePlacementSubtitle(name)

Actualiza el subtítulo de la columna de la aplicación

Nota: Esto requiere que el receptor de la aplicación esté configurado (véase más arriba).

nombre (str)

Máx. 35 caracteres

hsp.showUser(twitterHandle)

Abre una ventana emergente de información de usuario para el nombre de usuario de Twitter especificado.

twitterHandle: (string)

nombre de usuario de Twitter

Ejemplo:

hsp.showUser('hootsuite_help');

showUser.f203dc7a

hsp.showFollowDialog(twitterHandle, isFollow)

Abre una ventana de diálogo para seguir o dejar de seguir a un usuario de Twitter.

twitterHandle: (string)

nombre de usuario de Twitter

isFollow: ( &quot;cadena booleana&quot;)

&quot;verdadero&quot; para seguir, &quot;falso&quot; para dejar de seguir.

Ejemplo:

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

showFollowDialog.ff5cb783

hsp.getTwitterAccounts(callback)

Obtiene una lista (array) de todos los perfiles de Twitter (nombres de usuario) que el usuario que ha iniciado sesión ha añadido a su cuenta de Hootsuite.

callback: (función)

Función que acepta una cadena de array

Ejemplo:

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

hsp.assignItem(item)

Asigna un elemento desde la columna de aplicación. El elemento de parámetro es un objeto javascript que deberá contener toda la información necesaria del elemento a ser asignado. La IPA de URL de retrollamada que se encuentra en la configuración de la aplicación dentro del Portal dev tiene que estar presente para que la función funcione.

datos: (objeto JSON)

  • messageID:cadena, debería ser la ID del elemento, necesario
  • messageAuthor: cadena de caracteres, necesaria
  • messageAuthorAvatar: cadena de caracteres, necesaria
  • Mensaje: cadena de caracteres, necesaria
  • timestamp: int o cadena, debe ser tiempo actual en segundos, opcional

Ejemplo:

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}

Cuando una asignación se active o se actualiza, la aplicación debería mostrar el CSS correspondiente (consulta la plantilla para los estilos).

hsp.resolveItem(item)

Resuelve un elemento desde la columna de aplicación.

Anatomía:

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

Eventos de la IPA

En esta sección se describe el conjunto de eventos disponibles y signaturas de función de controlador de evento esperadas disponibles utilizando hsp.bind().

refresh()

Se activa cuando la columna de la aplicación se actualiza, ya sea por el usuario dentro de la columna, o como parte de una actualización del panel de control.

formato de retrollamada: una función sin parámetros

Ejemplo:

function refreshHandler () { }

Nota: NO se recomienda el uso de window.location.reload(). Una de las soluciones más elegantes sería realizar una encuesta en busca de nuevos mensajes a través de AJAX e introducir solo mensajes nuevos en el DOM, dejando intactos los mensajes existentes.

dropuser()

Se activa cuando un usuario arrastra y suelta un avatar de usuario de Twitter desde el panel de control de Hootsuite en tu columna de aplicación.

formato de retrollamada: una función con dos parámetros, el nombre de usuario de Twitter del usuario y la ID única del tuit desde el que el usuario lo arrastró

Ejemplo:

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

sendcomposedmsgtoapp()

Añade un complemento de aplicación al selector de la red social nativa de Hootsuite. El usuario puede enviar mensajes al complemento directamente desde el cuadro de redacción de mensaje de Hootsuite

Nota: Tienes que ponerte en contacto con nuestro equipo de administración de directorio de aplicaciones para habilitar la unión de tu complemento de aplicación con este evento

formato de retrollamada: un objeto javascript que contiene los datos del mensaje

Estructura de datos de objeto del mensaje:

Mensaje: (objeto) texto: (cadena)

Ejemplo:

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

closepopup()

Se activa cuando una ventana emergente personalizada abierta por tu columna de aplicación está cerrada

formato de retrollamada: una función sin parámetros

Ejemplo:

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. 

Si quieres limitar en qué redes sociales se muestra el complemento, consulta los detalles para hsp.init

formato de retrollamada: un objeto javascript que contiene los datos del mensaje

Estructura de datos de objeto del mensaje:

Twitter

Mensaje: (objeto) publicación: (objeto) red social: (cadena) href: (cadena) url para la publicación original ID: (cadena) ID de publicación externa fecha y hora: (cadena) ISO 8601 formato de fecha y hora fuente: (cadena) por ej., Hootsuite contenido: (objeto) cuerpo: (cadena) bodyhtml: (cadena) usuario: (objeto) ID de usuario: (cadena) nombre de usuario: (cadena) conversaciones: (array) ID: (int/cadena) uid: (int) nombre: (cadena) fecha y hora: (cadena) texto: (cadena) fuente: (cadena) solo Twitter recuento de retuits: (cadena) solo Twitter geo: (cadena) solo Twitter archivos adjuntos: (array) elementos: (array) destino: (string) URL a la página de recursos originUrl: (cadena) URL al recurso actual thumbnailsrc: (cadena) URL para la miniatura título: (cadena) tipo: (cadena) enlace | vídeo | álbum de fotos | foto &quot;favoritecount&quot;:10} Perfil: (objeto) redes sociales: (cadena) creado_el (cadena) descripción (cadena) recuento_seguidores (int) recuento_amigos (int) ID (cadena) id_str (cadena) lang (cadena) recuento_listado (int) ubicación (cadena) nombre (cadena) red social (cadena) URL_imagen_perfil (cadena) https_URL_imagen_perfil (cadena) nombre_usuario (cadena) recuento_estatus (int) zona_horaria (string) URL (cadena) utc_offset (int) verificada (booleano) &quot;recuentos&quot;: { &quot;me gusta&quot;: 19, &quot;compartido&quot;: 1, &quot;respuestas&quot;: 1

Facebook

Mensaje: (objeto) publicación: (objeto) red social: (cadena) href: (cadena) url para la publicación original ID: (cadena) ID de publicación externa fecha y hora: (cadena) ISO 8601 formato de fecha y hora fuente: (cadena) por ej., Hootsuite contenido: (objeto) cuerpo: (cadena) bodyhtml: (cadena) usuario: (objeto) ID de usuario: (cadena) nombre de usuario: (cadena) conversaciones: (array) ID: (int/cadena) uid: (int) nombre: (cadena) fecha y hora: (cadena) texto: (cadena) fuente: (cadena) solo Twitter recuento de retuits: (cadena) solo Twitter geo: (cadena) solo Twitter archivos adjuntos: (array) elementos: (array) destino: (string) URL a la página de recursos originUrl: (cadena) URL al recurso actual thumbnailsrc: (cadena) URL para la miniatura título: (cadena) tipo: (cadena) enlace | vídeo | álbum de fotos | foto &quot;favoritecount&quot;:10} Perfil: (objeto) redes sociales: (cadena) creado_el (cadena) descripción (cadena) recuento_seguidores (int) recuento_amigos (int) ID (cadena) id_str (cadena) lang (cadena) recuento_listado (int) ubicación (cadena) id: nombre: concatedName: nombre (cadena) imagen (cadena) página web (cadena) 

 

Ejemplo de mensaje de objeto:

{ &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 }}

Ejemplo:

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

Columnas de red social, compatibles: Estas son todas las columnas de redes sociales independientes que son compatibles con los componentes del mensaje que se activan.

Compatibles

Twitter: Inicio, menciones, retuits, seguidores, listas, favoritos, mis tuits, buscar, bandeja de entrada, bandeja de salida, palabra clave (Guardar como columna)
Facebook: cronograma, página, buscar

sendcommenttoapp()

El registro para este evento hará que los usuarios envíen un comentario de Facebook individual (sin respuestas de comentario) a tu aplicación

formato de retrollamada: un objeto javascript que contiene los datos del mensaje

Estructura de datos de objeto del mensaje:

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

Ejemplo de mensaje de objeto:

{&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}

Ejemplo:

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

Columnas de Facebook compatibles: Estas son todas las columnas de Facebook independientes que son compatibles con los componentes del mensaje que se activan.

Compatibles

Facebook: cronograma, página

sendprofiletoapp()

El registro para este evento hará que los usuarios vean un elemento de menú en los menús de perfil de Twitter o Facebook. El evento se activa cuando el usuario hace clic en el elemento de menú.

formato de retrollamada: un objeto javascript que contiene los datos del perfil

Estructura de datos de objeto del perfil:

Twitter

Perfil: (objeto) red social (cadena) creado_el (cadena) descripción (cadena) recuento_seguidores (int) recuento_amigos (int) ID (cadena) id_str (cadena) lang (cadena) recuento_listado (int) ubicación (cadena) nombre (cadena) red social (cadena) URL_imagen_perfil (cadena) https_URL_imagen_perfil (cadena) nombre_usuario (cadena) recuento_estatus (int) zona_horaria (cadena) URL (cadena) utc_offset (int) verificado (booleano) Publicación: (objeto) href: (cadena) URL para la publicación original id: (cadena) ID de publicación externa fecha y hora: (cadena) ISO 8601 formato de fecha y hora fuente: (cadena) solo Twitter por ej., Aplicación de iPhone red social: (cadena) contenido: (objeto) cuerpo: (cadena) bodyhtml: (cadena) usuario: (objeto) ID de usuario: (cadena) solo Facebook y Twitter nombre de usuario: (cadena) conversaciones: (array) ID: (int/cadena) uid: (int) nombre: (cadena) fecha y hora: (cadena) texto: (cadena) fuente: (cadena) solo Twitter recuento de retuits: (cadena) solo Twitter geo: (cadena) solo Twitter archivos adjuntos: (array) elementos: (array) destino: (string) URL a la página de recursos originUrl: (cadena) URL al recurso actual thumbnailsrc: (cadena) URL para la miniatura título: (cadena) tipo: (cadena) enlace | vídeo | álbum de fotos | foto recuento de favoritos: (cadena)Perfil: (objeto) redes sociales: (cadena) creado_el (cadena) descripción (cadena) recuento_seguidores (int) recuento_amigos (int) ID (cadena) id_str (cadena) lang (cadena) recuento_listado (int) ubicación (cadena) nombre (cadena) red social (cadena) URL_imagen_perfil (cadena) https_URL_imagen_perfil (cadena) nombre_usuario (cadena) recuento_estatus (int) zona_horaria (string) URL (cadena) utc_offset (int) verificada (booleano)

 Facebook

Perfil: (objeto) red social: (cadena) bio: (cadena) nombre: (cadena) género: (cadena) id: (cadena) apellidos: (cadena) enlace: (cadena) lugar: (cadena) ubicación: (objeto/array) id: (valor) nombre: (cadena) concatedName: (string) nombre: (cadena) imagen: (cadena) página web: (URL) publicación: (objeto) red social: (cadena) href: (string) url para la publicación original: (cadena) id: (cadena) ide de publicación externa fecha y hora: (cadena) ISO 8601 formato de fecha y hora fuente: (cadena) solo Twitter, por ej. Aplicación de iPhone contenido: (objeto) cuerpo: (cadena) bodyhtml: (cadena) usuario: (objeto) ID de usuario: (cadena) solo Facebook y Twitter conversaciones: (array) ID: (int/cadena) uid: (int) nombre: (cadena) texto: (cadena) fecha y hora: (cadena) geo: (cadena) solo Twitter recuento de retuits: (cadena) solo Twitter fuente: (cadena) solo Twitter URL de perfil: (cadena) solo Facebook &quot;me gusta&quot; (int) solo Facebook archivos adjuntos: (array) elementos: (array) destino: (cadena) URL a la página de recursos originUrl: (cadena) URL al recurso actual thumbnailsrc: (cadena) URL para la miniatura título: (cadena) tipo: (cadena) enlace | vídeo | álbum de fotos | foto Perfil: (objeto) red social: (cadena) bio: (cadena) nombre: (cadena) género: (cadena) id: (cadena) apellidos: (cadena) lugar: (cadena) ubicación: (objeto/array) id: (valor) nombre: (cadena) concatedName: (cadena) nombre (cadena) imagen (cadena) página web: (URL)

sendassignmentupdates()

El artículo se ha resuelto desde el panel de control de Hootsuite, que envía las retrollamadas de asignación a la aplicación.

formato de retrollamada: un objeto javascript que contiene los datos de información de actualización

Anatomía:

{ 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}

Retrollamada de la IPA

El SDK proporciona un punto final back-end para tu aplicación.  Para que la aplicación y el panel de control de Hootsuite se comuniquen, debes proporcionar un APICallbackURL en tu aplicación dentro del portal del desarrollador. Hootsuite activará una solicitud POST a la APICallbackURL proporcionado para enviar un evento. NOTA IMPORTANTE: cada solicitud requiere el directorio de aplicaciones SSO para la autenticación. 

La función de la IPA de asignación permite a un usuario asignar un elemento desde tu columna de aplicación a otro usuario de Hootsuite, y reasignar o resolverlo tanto desde la columna de aplicación como desde el panel de control de Hootsuite (incluso sin que la aplicación esté instalada por otros usuarios). Se requiere autenticación SSO utilizar la APICallbackURL. 

Solicitud de asignación de evento

Cada vez que se crea o se actualiza una asignación, se enviará una solicitud POST a la APICallbackURL.

{ 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> Mensaje: <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;}