API

SDK do Diretório de Aplicativos

API (v2.0, atual)

Como Funciona

JSApi é a porta de entrada de comunicação do diretório de aplicativos da SDK entre seu aplicativo e o painel Hootsuite. A API permite que os desenvolvedores de aplicativos para funções de chamada que enviam eventos para o painel Hootsuite e para receber notificações de evento do painel Hootsuite no aplicativo.

As interações entre a Hootsuite e o seu aplicativo são possibilitadas por  JSApi. A biblioteca SDK javascript, hsp.js, oferece funções que acionam uma funcionalidade específica no painel Hootsuite. A hsp.js também possibilita a inicialização e o registro do seu aplicativo para receber eventos do painel Hootsuite.

Observação: certifique-se de que seu servidor permite solicitações de postagem.

Configurações

O que é necessário para usar a JS API:

  • Biblioteca JS - A biblioteca hsp.js possibilita a comunicação de mão dupla entre seu aplicativo e o painel Hootsuite. Inclua este arquivo na página inicial do seu aplicativo:

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

Por exemplo, a referência a este arquivo na página inicial apareceria da seguinte maneira:

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

Funções da API, eventos e retorno de chamada

A comunicação do seu aplicativo com o painel Hootsuite ocorre com a utilização das funções disponíveis na hsp.js.
 
A comunicação do painel Hootsuite com o seu aplicativo ocorre através dos events . Os events sobre os quais seu aplicativo deseja ser notificado são registrados com as chamadas para a função hsp.bind(), indicando o Evento de interesse e a função de retorno de chamada que seu aplicativo executará quando o Evento for acionado.

Funções

  • init - Inicia a JS API
  • associar - Registra um evento do painel Hootsuite a ser gerenciado com o aplicativo e um gerenciador de eventos associado
  • getMemberInfo - Usada juntamente com outros métodos de atribuições e retornos de chamada
  • saveData - usada com a getData para manter as configurações do usuário de uma sessão para outra
  • getData - usada com a saveData para manter as configurações do usuário de uma sessão para outra
  • clearStatusMessage - Exclui todas as mensagens de status visíveis no momento
  • Escrever mensagem - Abre a caixa de diálogo Compartilhar nas Redes Sociais
  • Retratar - inicia o processo da caixa de diálogo de retuíte
  • attachFileToMessage - Sends attachments to the compose box
  • customUserInfo - Abre uma janela popup de informações do usuário
  • getTwitterAccounts - Acessa uma lista de todos os perfis de Twitter do usuário conectado
  • showCustomPopup - Mostra uma caixa de diálogo popup modal contendo um iFrame com conteúdos específicos do aplicativo
  • closeCustomPopup - Fecha a caixa de diálogo popup modal
  • showFollowDialog - Abre uma janela de caixa de diálogo para seguir ou deixar de seguir um usuário do Twitter
  • showImagePreview - Mostra uma imagem em uma janela popup
  • showStatusMessage - Mostra uma notificação
  • showUser - Abre um popup com informações do usuário
  • updatePlacementSubtitle - Atualiza a legenda da coluna do aplicativo
  • assignItem - Atribui um conteúdo de mensagem de texto a um usuário Hootsuite
  • resolveitem - Item resolvido na coluna do aplicativo

Eventi

  • closepopup - Ativa-se quando um popup personalizado aberto pela coluna do aplicativo é fechado
  • dropuser - Ativa-se quando um usuário arrasta e solta um avatar de usuário do Twitter do painel Hootsuite na coluna do aplicativo
  • Atualizar - Ativa-se quando a coluna do aplicativo é atualizada, tanto pelo usuário na coluna quanto como parte de uma atualização do painel
  • 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 - O registro nesse evento fará com que os usuários enviem um comentário de Facebook invidivual (sem respostas ao comentário) ao seu aplicativo
  • sendcomposedmsgtoapp - Adiciona o plugin do aplicativo ao seletor do perfil da rede social nativa do Hootsuite. O usuário pode enviar mensagens ao plugin diretamente da caixa para escrever mensagem do Hootsuite
  • sendprofiletoapp - O registro nesse evento fará com que os usuários vejam um item do menu nos menus dos perfis de Twitter, Facebook, LinkedIn e Google+. O evento é ativado quando o usuário clica no item do menu
  • sendassignmentupdates - O registro nesse evento permite que o aplicativo seja notificado sobre atualizações de sua atribuição

Retorno de chamada

Funções da API

Esta seção descreve o conjunto de funções disponíveis e assinaturas de função esperadas

hsp.init(params)

Inicia a JS API e carrega os arquivos CSS do tema

params: objeto:

  • legenda: (string, opcional)
  •  A legenda do seu aplicativo, a ser exibida no título da coluna.
  • callBack: (função, opcional)
     Init enviará uma mensagem de erro à função callBack após a inicialização. A mensagem é: Nenhum erro, se a inicialização for bem-sucedida.
  • sendToAppDisableList: Especifica as redes sociais que seu plugin sendtoapp não deve mostrar como (‘facebook’, ‘twitter’)
  • sendProfileToAppDisableList: Especifica as redes sociais que seu plugin sendprofiletoapp não deve mostrar como (‘facebook’, ‘twitter’)

Exemplo.

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

hsp.bind(eventName, callback)

Registra um gerenciador de evento para um evento especificado.

eventName: (string)

Nome do evento a ser gerenciado, pode ser um dos seguintes:

  • closepopup - Ativa-se quando um popup personalizado aberto pela coluna do aplicativo é fechado
  • dropuser - Ativa-se quando um usuário arrasta e solta um avatar de usuário do Twitter de um painel Hootsuite na coluna do aplicativo
  • Atualizar - Ativa-se quando a coluna do aplicativo é atualizada, tanto pelo usuário na coluna quanto como parte de uma atualização do painel
  • sendtoapp - O registro nesse evento fará com que os os usuários vejam um item do menu dizendo Send to <app stream>... nos menus de mensagem da coluna do Twitter e do Facebook. Esse evento é ativado quando o usuário clica no item do menu

callback: (função)

Função para gerenciar o retorno de chamada, os parâmetros da função são determinados pelo evento. Veja o evento para saber detalhes sobre os formatos esperados de retorno de chamada.

Exemplo.

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

Conforme afirmado na seção Melhores práticas seção, faz sentido suprimir o recarregamento da coluna enquanto o usuário interage com ela (por exemplo, publicar mensagens, detalhes ampliados, possivelmente posição de rolagem não próxima do topo). Uma abordagem possível poderia parecer assim:

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

O uso de window.location.reload() NÃO é recomendado. Uma das soluções mais elegantes seria pesquisar novas mensagens via AJAX e injetar apenas mensagens novas no DOM, sem mexer nas mensagens existentes.

hsp.getMemberInfo(function(info)

Este método deve ser usado em conjunto com os outros métodos de atribuição e retorno de chamada (assignItem, resolveItem, solicitação de atribição de evento). Como é possível realizar atribuições a uma Equipe ou a um membro da equipe, o aplicativo precisa saber de quais equipes seu usuário é membro. Essa informação pode ser obtida com getMemberInfo.

Recomendamos tentar esse método após hsp.init.

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

Manter detalhes do usuário

hsp.saveData e hsp.getData devem ser usadas em conjunto para manter configurações do usuário de uma sessão para outra (por exemplo, tokens do usuário, configurações de coluna única e filtros definidos pelo usuário no aplicativo). Os métodos são invocados por base de coluna em comparação com o PID. 

Os dados podem ser salvos em qualquer formato de string.

hsp.saveData(function)

hsp.saveData(data, callback); //Salva os dados na coluna do aplicativo do membro e oferece a opção de só obter objetos de dado salvos no retorno de chamada para a coluna do aplicativo para verificar
hsp.getData(callback); //Recupera dados salvos na coluna do aplicativo do membro

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

Exclui todas as mensagens de status visíveis no momento.

hsp.composeMessage(message, params)

- Abre a caixa de diálogo Compartilhar nas Redes Sociais no painel Hootsuite.

Se a sua postagem tiver uma imagem, pense em incorporar o hsp.attachFiletoMessage método

Mensagem: (string)

As regras de mensagens do Twitter se aplicam, por exemplo: para escrever uma mensagem direta para @Hootsuite, digite: d hootsuite <your message here>

params: (objeto, opcional)

  • shortenLinks: bool, opcional
     Encurta todos os links nesta mensagem com o encurtador de URL padrão do usuário (ow.ly / ht.ly / ou URL intuitiva). Define como falso.
  • timestamp: bool OU int, opcional
     Abre o Agendador e preenche com o registro de data/hora (em UTC, em segundos) OU,se verdadeiro, o Agendador abrirá sem tempo padrão. Define como falso. O tempo é especificado em segundos, por exemplo: {scheduleTimestamp: 1460520580}
  • twitterReplyToId: coluna, opcional
     Escreve um novo tuíte para responder a um tuíte existente. Se uma string de ID passar para um tuíte existente, o Redator tratará a nova mensagem como parte da conversa. Observação: A mensagem precisa conter um indentificador do Twitter válido com o símbolo &quot;@&quot;. Ex: @hootsuite Isto é uma resposta!

Exemplo.

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

hsp.retweet(id, screenName)

Abre o processo da caixa de diálogo de retuítes no painel Hootsuite para o tuíte com a id a ser retuitado por screenName.

id: (string)

O id_str tweetId do Twitter, para o tuíter ser retuitado

screen_name: (string, opcional)

O screen_name do Twitter com o qual deseja retuitar

Exemplo.

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

hsp.attachFiletoMessage

Envia anexos à caixa de diálogo Compartilhar nas Redes Sociais no painel Hootsuite. Os arquivos têm um limite de 5MB.

dados: (JSON object)

  • url:  coluna, exigido 
  • nome:  coluna, exigido
  • extensão: coluna, exigido
  • timestamp: int ou string, precisa ser o tempo atual em segundos, requerido
  • token: coluna, exigido
    • user_id: string, precisa ser o usuário atual, pode ser recuperado do parâmetro de url, exigido
    • timestamp: string, precisa ser igual à data/hora anterior, exigido
    • url: string, deve ser o mesmo url anterior, requerido
    • secret: string, encontra-se na seção do aplicativo do seu Portal do Desenvolvedor

Supported File Types:

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

Exemplo: 

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 uma janela popup de informações do usuário

dados: (JSON object)

Exemplo.

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)

Mostra uma caixa de diálogo popup modal contendo um iFrame com conteúdos da URL especificada Ao fechar, o diálogo ativa o evento closePopUp().

src: (string)

URL do conteúdo que aparecerá no popup

título: (string)

O título exibido na janela popup

Largura: (int)

O comprimento em pixels do popup. O comprimento tem as seguintes limitações:

  • Se não for especificado, o comprimento será de 640 pixels
  • O comprimento mínimo é de 300 pixels.
  • O comprimento máximo é de 900 pixels.

Altura: (int)

A altura do popup em pixels. A altura tem as seguintes restrições.

  • Se não for especificada, a altura será de 445 pixels
  • A altura mínima é de 225 pixels.
  • A altura máxima é de 500 pixels.

Exemplo.

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

Importante:

Não inicie hsp de novo dentro do popup personalizado. Seu popup não deve conter outras funções hsp além 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()

Observação: as funções vinculadas a eventos hsp não estão disponíveis no popup personalizado.

hsp.closeCustomPopup(apiKey, pid)

Fecha a janela popup modal.

Observação: Certifique-se de que a página iFrame na janela popup personalizada e página de fluxo do aplicativo estejam compartilhando o mesmo domínio. Você não precisa (e não deve) recorrer a hsp.init() novamente na página iFrame, apenas incluir hsp.js e usar hsp.closeCustomPopup(apiKey, pid). Você pode usar JavaScript para realizar a comunicação entre o popup e o fluxo da seguinte maneira:

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

Chave de API: (string)

A Chave da API do seu aplicativo

pid: (string)

O pid é associado a cada instalação única de um fluxo (ou plugin) do aplicativo. Você pode obter cada fluxo de aplicativo com a solicitação de URL recebida pelo seu servidor. Por exemplo:

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

hsp.showImagePreview(src, externalUrl)

Exibe uma imagem em uma janela popup, com um link opcional para uma URL externa.

src: (string)

URLde imagem

externalURL: (string)

URL a abrir se o usuário clicar na imagem

hsp.showStatusMessage(message, type)

Exibe uma notificação centralizada no topo do painel Hootsuite.

Mensagem: (string)

Deve ser breve, máx. de 70 caracteres.

tipo: (string):

Pode ser um dos seguintes:

  • info: Fundo azul
  • Erro: Fundo vermelho
  • alerta: Fundo amarelo
  • sucesso: Fundo verde

hsp.updatePlacementSubtitle(name)

Atualiza a legenda da coluna do aplicativo

Observação: Isso requer que o Receptor do aplicativo seja definido (ver acima).

nome (str)

Máx de 35 caracteres

hsp.showUser(twitterHandle)

Abre um popup com informações de usuário para o nome de usuário do Twitter especificado.

twitterHandle: (string)

nome de usuário do Twitter

Exemplo.

hsp.showUser('hootsuite_help');

showUser.f203dc7a

hsp.showFollowDialog(twitterHandle, isFollow)

Abre uma janela de diálogo para seguir ou deixar de seguir um usuário do Twitter.

twitterHandle: (string)

nome de usuário do Twitter

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

&quot;verdadeiro&quot; para seguir, &quot;falso&quot; para parar de seguir.

Exemplo.

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

showFollowDialog.ff5cb783

hsp.getTwitterAccounts(callback)

Obtém uma lista (array) de todos os perfis de Twitter (nomes de usuário) que o usuário conectado adicionou à sua conta Hootsuite.

callback: (função)

Função que aceita strings de array

Exemplo.

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

hsp.assignItem(item)

Atribui um item da coluna do aplicativo. O item de parâmetro é um objeto do javascript que deve conter todas as informações necessárias sobre o item a atribuir. O URL de retorno de chamada da API encontrado nas configurações do usuário em Portal do Desenvolvedor precisa estar presente para a função funcionar.

dados: (JSON object)

  • messageID: string, deve ser o ID do item, requerido
  • messageAuthor: coluna, exigido
  • messageAuthorAvatar: coluna, exigido
  • Mensagem: coluna, exigido
  • timestamp: int ou spring, precisa ser o tempo atual em segundos, opcional

Exemplo.

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}

Quando uma atribuição é ativada ou atualizada, o aplicativo deve exibir o CSS apropriado (conferir modelo para obter estilos).

hsp.resolveItem(item)

Soluciona um item da coluna do aplicativo.

Anatomia:

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

Eventos API

Esta seção descreve o conjunto de eventos disponíveis e assinaturas de função de identificação de evento esperadas disponíveis usando hsp.bind().

refresh()

Ativa-se quando a coluna do aplicativo é atualizada, tanto na coluna pelo usuário quanto como parte de uma atualização do painel.

formato de retorno de chamada: uma função sem parâmetros

Exemplo.

function refreshHandler () { }

Observação: O uso de window.location.reload() NÃO é recomendado. Uma das soluções mais elegantes seria pesquisar novas mensagens via AJAX e injetar apenas mensagens novas no DOM, sem mexer nas mensagens existentes.

dropuser()

Ativa-se quando um usuário arrasta e solta um avatar de usuário do Twitter de um painel Hootsuite na coluna do aplicativo.

formato de retorno de chamada: uma função com dois parâmetros,o identificador do Twitter do usuário e o ID único do tuíte de onde o usuário foi puxado

Exemplo.

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

sendcomposedmsgtoapp()

Adiciona o plugin do aplicativo ao seletor da rede social nativa do Hootsuite. O usuário pode enviar mensagens ao plugin diretamente da caixa para escrever mensagem do Hootsuite

Observação: Você precisa entrar em contato com a equipe de administração do diretório do aplicativo para permitir essa vinculação de eventos no seu plugin do aplicativo.

formato de retorno de chamada: um objeto de javascript contendo os dados da mensagem

Estrutura dos dados do objeto da mensagem:

Mensagem: (objeto)texto: (string)

Exemplo.

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

closepopup()

Ativa-se quando um popup personalizado aberto pela coluna do aplicativo é fechado

formato de retorno de chamada: uma função sem parâmetros

Exemplo.

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. 

Se quiser limitar as redes sociais nas quais o plugin é exibido, confira os detalhes para hsp.init

formato de retorno de chamada: um objeto de javascript contendo os dados da mensagem

Estrutura dos dados do objeto da mensagem:

Twitter

Mensagem: (object) postagem: (objeto) rede: (string) href: (string) url da postagem original id: (string) id de postagem externa data: (string) formato de data iso 8601 fonte: (string) por exemplo Hootsuite conteúdo: (object) corpo: (string) bodyhtml: (string) usuário: (objeto) usedir: (string) nome de usuário: (string) conversas: (array) id: (int/string) uid: (int) nome: (string) data: (string) texto: (string) fonte: (string) só para twitter retweetcount: (string) só para twitter geo: (string) só para twitter anexos: (array) itens: (array) alvo: (string) url da página fonte originurl: (string) url da verdadeira fonte thumbnailsrc: (string) url da miniatura título: (string) tipo: (string) link | vídeo | álbum de fotos | foto &quot;favoritecount&quot;:10} Perfil: (object)redes: (string) created_at (string) descrição (string) followers_count (int) friends_count (int) id (string) id_str (string) lang (string) listed_count (int) localidade (string) nome (string) rede (string) profile_image_url (string) profile_image_url_https (string) screen_name (string) statuses_count (int) time_zone (string) url (string) utc_offset (int) verificado (boolean) &quot;counts&quot;: { &quot;likes&quot;: 19, &quot;shares&quot;: 1, &quot;replies&quot;: 1

Facebook

Mensagem: (object) post: (object) network: (string) href: (string) url to the original post id: (string) external post id datetime: (string) iso 8601 datetime format source: (string) e.g. Conteúdo Hootsuite: (object) body: (string) bodyhtml: (string) user: (object) userid: (string) username: (string) conversations: (array) id: (int/string) uid: (int) name: (string) datetime: (string) text: (string) source: (string) twitter only retweetcount: (string) twitter only geo: (string) twitter only attachments: (array) items: (array) target: (string) url to the resource page originurl: (string) url to the actual resource thumbnailsrc: (string) url to the thumbnail title: (string) type: (string) link | video | photoalbum | photoPerfil: (object) 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)

 

Objeto da mensagem de exemplo:

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

Exemplo.

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

Colunas de redes sociais suportadas: Essas são todas as colunas de redes sociais separadas que suportam os componentes de mensagem a serem acionados.

Suportados

Twitter: Página inicial, Menções, Retuítes, Seguidores, Listas, Favoritos, Meus Tuítes, Pesquisa, Caixa de entrada, Caixa de Saída, Palavra-chave (Salvar como coluna)
Facebook: Linha do tempo, Página, Pesquisa

sendcommenttoapp()

O registro nesse evento fará com que os usuários enviem um comentário de Facebook invidivual (sem respostas ao comentário) no seu aplicativo

formato de retorno de chamada: um objeto em javascript contendo os dados da mensagem

Estrutura dos dados do objeto da mensagem:

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

Objeto da mensagem de exemplo:

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

Exemplo.

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

Colunas de Facebook suportadas: Essas são todas as colunas do Facebook separadas que suportam os componentes de mensagem a serem acionados.

Suportados

Facebook: Linha do tempo, Página

sendprofiletoapp()

O registro nesse evento fará com que os usuários vejam um item do menu nos meus dos perfis do Twitter ou do Facebook. O evento é ativado quando o usuário clica no item do menu.

formato de retorno de chamada: um objeto em javascript contendo os dados do perfil

Estrutura de dados do objeto do perfil:

Twitter

Perfil: (object)rede (string) created_at (string) descrição (string) followers_count (int) friends_count (int) id (string) id_str (string) lang (string) listed_count (int) localidade (string) nome (string) rede (string) profile_image_url (string) profile_image_url_https (string) screen_name (string) statuses_count (int) time_zone (string) url (string) utc_offset (int) verificado (boolean)Postagem: (object) href: (string) url para a postagem original id: (string) id de postagem externa data: (string) formato de data iso 8601 fonte: (string) somente para twitter, por exemplo Aplicativo para iPhone network: (string) content: (object) body: (string) bodyhtml: (string) user: (object) userid: (string) facebook and twitter only username: (string) conversations: (array) id: (int/string) uid: (int) name: (string) datetime: (string) text: (string) source: (string) twitter only retweetcount: (string) twitter only geo: (string) twitter only attachments: (array) items: (array) target: (string) url to the resource page originurl: (string) url to the actual resource thumbnailsrc: (string) url to the thumbnail title: (string) type: (string) link | video | photoalbum | photo favoritecount: (string)Profile: (object) 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

Perfil: (object) network: (string) bio: (string) first_name: (string) gender: (string) id: (string) last_name: (string) link: (string) locale: (string)location: (object/array) id: (value) name: (string) concatedName: (string) name: (string) picture: (string) website: (URL)post: (object) network: (string) href: (string) url to the original post id: (string) external post id datetime: (string) iso 8601 datetime format source: (string) twitter only e.g. Aplicativo para iPhone content: (object) body: (string) bodyhtml: (string) user: (object) username: (string) userid: (string) facebook and twitter onlyconversations: (array) id: (int/string) uid: (int) name: (string) text: (string) datetime: (string) geo: (string) twitter only retweetcount: (string) twitter only source: (string) twitter only profileurl: (string) facebook only likes: (int) facebook only attachments: (array) items: (array) target: (string) url to the resource page originurl: (string) url to the actual resource thumbnailsrc: (string) url to the thumbnail title: (string) type: (string) link | video | photoalbum | photoPerfil: (object) network (string) bio (string) first_name (string) gender (string) id (string) last_name (string) link (string) locale (string)location: (object/array) id: (value) name: (string) concatedName: (string) name (string) picture (string) website: (URL)

sendassignmentupdates()

O item resolvido a partir do painel Hotosuite, que envia ao aplicativo os retornos de chamada de atribuição.

formato de retorno de chamada: um objeto em javascript contendo os dados de informação de atualização

Anatomia:

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

Retorno de chamada da API

O SDK oferece um ponto de contato de backend para o seu aplicativo.  Para que o aplicativo e o painel Hootsuite se comuniquem, você precisa fornecer um URL de retorno de chamada da API em seu aplicativo, no portal do desenvolvedor. O Hootsuite ativará uma solicitação de postagem ao URL de retorno de chamada da API fornecido para enviar um evento. OBSERVAÇÃO IMPORTANTE: cada solicitação requer o SSO do diretório de aplicativos para a autentificação. 

Com a função de atribuição da API, o usuário pode atribuir um item da coluna do aplicativo a outro usuário Hotosuite e reatribui-lo ou resolvê-lo a partir da coluna do aplicativo e do painel Hootsuite (mesmo que outros usuários não tenham instalado o aplicativo). É necessária a autentificação do SSO para usar o URL de retorno de chamada da API. 

Solicitação de atribuição de evento

Toda vez que uma atribuição for criada ou atualizada, uma solicitação de postagem será enviada ao URL de retorno de chamada da API.

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