Hello
I have been working on creating a custom widget for our Xibo deployment, where the widget pulls data dynamically from external sources via API. The problem I’ve encountered is with data binding, where certain data fields are not displaying correctly or updating in real-time. 
For example, when pulling JSON data from a third-party API, the widget correctly populates on the first load, but fails to update dynamically when the underlying data changes.
I suspect there might be an issue with how the widget’s data binding is implemented, but I’m unsure how to troubleshoot or resolve this.
I’m using Xibo CMS version 3.x. The widget is written in PHP and JavaScript and pulls live data from a remote API endpoint. The widget data is supposed to be refreshed every 5 minutes, but I notice that the UI does not always reflect the updated data unless the page is manually refreshed. 
I’ve tried using Xibo’s built-in refresh functionality but haven’t been able to find a consistent solution for dynamic data updates.
I have checked Widgets | Xibo Digital Signage java documentation guide for reference .
Would appreciate any advice on how to properly set up real-time data binding or refresh mechanisms for widgets within Xibo’s CMS.
Thank you ! 
Olá! 
Passei por algo semelhante quando comecei a trabalhar com o CMS Xibo em instalações compartilhadas. Naquela época, também tive problemas com APIs externas, onde os dados não atualizavam ou não eram exibidos corretamente. Acredito que isso possa estar relacionado a alguma configuração no painel de hospedagem compartilhada que impede o correto funcionamento da comunicação com APIs externas, possivelmente relacionado a restrições de cURL, tempo de execução ou bloqueios no firewall.
Quando migrei para um servidor dedicado, esses problemas desapareceram, e consegui trabalhar com APIs sem dificuldades, puxando os dados e atualizando dinamicamente conforme necessário.
No seu caso específico, considerando que o widget é escrito em PHP e JavaScript, aqui vão algumas dicas que podem ajudar:
- Verifique as configurações do servidor: Certifique-se de que o servidor tenha permissões para acessar endpoints externos, como APIs. Teste diretamente usando ferramentas como
cURL
ou Postman
.
- Caching no lado do CMS ou navegador: O Xibo pode estar cacheando os resultados da API. Verifique se o cabeçalho de resposta da API inclui instruções claras para não armazenar em cache (
Cache-Control: no-cache, no-store
).
- Configuração do widget: Certifique-se de que o mecanismo de atualização está configurado corretamente no código do widget. Por exemplo, em JavaScript, você pode usar
setInterval
para fazer chamadas periódicas ao endpoint.
- Console do navegador: Inspecione o console do navegador para verificar erros de conexão, mensagens sobre permissões (CORS, por exemplo), ou problemas de sintaxe no JavaScript.
- Logs do Xibo: Habilite os logs de depuração no Xibo para ver se há mensagens relacionadas à falha de atualização.
- Frequência de atualização: Confirme se o tempo de atualização configurado no widget (5 minutos no caso) está sendo respeitado e se o servidor não está bloqueando chamadas sucessivas.
Se essas sugestões não resolverem, pode valer a pena revisar a implementação de vinculação de dados no widget. Às vezes, a lógica de atualização dinâmica pode ser sensível a erros de programação que só aparecem em determinadas condições.
Espero que essas ideias ajudem!
1 Like