{"id":32490,"date":"2023-03-08T16:33:24","date_gmt":"2023-03-08T15:33:24","guid":{"rendered":"https:\/\/mimolive.com\/?post_type=user-manual&#038;p=32490"},"modified":"2024-10-08T11:01:10","modified_gmt":"2024-10-08T09:01:10","slug":"exemplos-de-utilizacao-da-api","status":"publish","type":"user-manual","link":"https:\/\/mimolive.com\/pt\/user-manual\/remote-control-automation\/http-api\/examples-of-api-usage\/","title":{"rendered":"Exemplos de utiliza\u00e7\u00e3o de API"},"content":{"rendered":"<h2 class=\"wp-block-heading\">Pr\u00e9-requisitos<\/h2>\n\n\n\n<p>- Abra o documento que pretende manipular no mimoLive.<br>- Certifique-se de que o documento est\u00e1 num estado finalizado para que os pontos de extremidade da API, como Camadas, n\u00e3o sejam alterados. Tenha em aten\u00e7\u00e3o que, se remover uma camada e a adicionar novamente, esta camada ter\u00e1 um ID de camada diferente quando falar com ela atrav\u00e9s da API. No entanto, reordenar camadas ou adicionar variantes de camadas n\u00e3o altera o ID da camada.<br>- Ativar o <span class=\"caps\">HTTP<\/span>-Servidor nas Prefer\u00eancias de Controlo Remoto do mimoLive. Marque a op\u00e7\u00e3o \"Permitir acesso ao controlo remoto\":<\/p>\n\n\n\n<figure class=\"wp-block-image size-full is-resized\"><img fetchpriority=\"high\" decoding=\"async\" width=\"1000\" height=\"542\" src=\"https:\/\/mimolive.com\/wp-content\/uploads\/2023\/03\/9e0a2b0b-6a64-4093-b15b-24aa12dead32.png\" alt=\"\" class=\"wp-image-32491\" style=\"width:570px;height:auto\" srcset=\"https:\/\/mimolive.com\/wp-content\/uploads\/2023\/03\/9e0a2b0b-6a64-4093-b15b-24aa12dead32.png 1000w,  https:\/\/mimolive.com\/wp-content\/uploads\/2023\/03\/9e0a2b0b-6a64-4093-b15b-24aa12dead32-300x163.png 300w,  https:\/\/mimolive.com\/wp-content\/uploads\/2023\/03\/9e0a2b0b-6a64-4093-b15b-24aa12dead32-768x416.png 768w,  https:\/\/mimolive.com\/wp-content\/uploads\/2023\/03\/9e0a2b0b-6a64-4093-b15b-24aa12dead32-18x10.png 18w\" sizes=\"(max-width: 1000px) 100vw, 1000px\" \/><\/figure>\n\n\n\n<p>Anote o n\u00famero de IP ou o endere\u00e7o de IP com o n\u00famero da porta do mimoLive para utiliza\u00e7\u00e3o posterior quando trabalhar com o <span class=\"caps\">HTTP<\/span> <span class=\"caps\">API<\/span>.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Formas de controlar o mimoLive \u00e0 dist\u00e2ncia<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">Controlar o mimoLive com superf\u00edcies de controlo remoto<\/h3>\n\n\n\n<p>A forma mais eficaz \u00e9 criar um <a href=\"https:\/\/mimolive.com\/pt\/manual-do-utilizador\/utilizacao-de-mimolive\/superficies-de-controlo-a-distancia\/\" data-type=\"user-manual\" data-id=\"31791\">Superf\u00edcie de controlo remoto<\/a> para o seu documento mimoLive, que pode ser executado num iPad, iPhone ou qualquer outro dispositivo com um navegador de Internet.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Controlar o mimoLive com php<\/h3>\n\n\n\n<p>Temos uma amostra bem documentada de um script PHP no GitHub: <br><a href=\"https:\/\/github.com\/boinx\/mimoLive-HTTP-Demo\" target=\"_blank\" rel=\"noreferrer noopener\">https:\/\/github.com\/boinx\/mimoLive-<span class=\"caps\">HTTP<\/span>-Demo<\/a><\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Controlar o mimoLive com <span class=\"caps\">CURL<\/span><\/h3>\n\n\n\n<p>Para controlar o mimoLive atrav\u00e9s de <span class=\"caps\">HTTP<\/span> pode usar o comando bash \"curl\". Para que os comandos curl funcionem, \u00e9 necess\u00e1rio encontrar o ID do documento mimoLive que pretende manipular.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Controlar o mimoLive com a camada de automatiza\u00e7\u00e3o<\/h3>\n\n\n\n<p>O <a href=\"https:\/\/mimolive.com\/pt\/manual-do-utilizador\/automatizacao\/\">Camada de automatiza\u00e7\u00e3o<\/a> pode executar alguns comandos f\u00e1ceis para desencadear ac\u00e7\u00f5es no mimLive atrav\u00e9s das suas <span class=\"caps\">API<\/span> Endpoints. Tem tamb\u00e9m um comando httpRequest() para efetuar qualquer tipo de <span class=\"caps\">OBTER<\/span> ac\u00e7\u00f5es de pedido o <span class=\"caps\">HTTP<\/span> <span class=\"caps\">API<\/span> \u00e9 capaz de o fazer.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Controlar o mimoLive com o Apple Script<\/h3>\n\n\n\n<p>Atualmente, o mimoLive n\u00e3o suporta nativamente o Apple Script. No entanto, pode usar uma solu\u00e7\u00e3o alternativa para contactar o mimoLive: Existe um comando \"do shell script\" no apple script que lhe permite executar comandos bash como \"curl\". A sec\u00e7\u00e3o anterior explica como criar um comando curl para manipular uma determinada camada ou valor de camada.<\/p>\n\n\n<section class=\"boinx_exclamation\">\n    <div class=\"main_div_exclamation\">\n        <div class=\"left_div_icon_exclamation\">\n                <i class=\"icon_exclamation\">\u2757<\/i>\n        <\/div>\n\n        <div class=\"right_div_text_exclamation\">\n                <div><p class=\"text_exclamation_headline\">Armadilhas no Apple Script<\/p><\/div>\n                <div><p class=\"text_exclamation\">No Apple Script, h\u00e1 duas armadilhas ao trazer um comando de terminal como \"curl\" para o comando do shell script: 1. Todos os \" t\u00eam de ser prefixados com um \\ para que o analisador Apple-Script saiba que n\u00e3o s\u00e3o os marcadores de fim para o comando do shell script. O \\ \u00e9 um car\u00e1cter de escape para dizer ao analisador para ignorar o car\u00e1cter seguinte. 2. Se concatenar v\u00e1rias partes de texto com &amp;, ent\u00e3o, para o Apple Script, isto \u00e9 uma \"lista de texto\" em vez de um \u00fanico texto. O comando do shell n\u00e3o funciona com \"lista de texto\" e, por isso, tem de o converter novamente num \u00fanico texto com \"as text\" no final do texto do seu comando curl<\/p><\/div>\n        <\/div>    \n    <\/div>\n<\/section>\n\n\t\t<style>.boinx_exclamation {\n    margin:30px 0;\n    padding:10px;\n    background-color:rgb(242,222,222);\n    border-radius: 8px;\n}\n.icon_exclamation {\n    display:block;\n    padding:5px;\n    font-size:80px;\n    color:rgb(184,74,72);\n    line-height:60px;\n}\n.text_exclamation {\n    color:rgb(184,74,72);\n}\n\n.text_exclamation_headline{\n    font-weight:bold;\n    color:rgb(184,74,72);\n}\n\n\n.main_div_exclamation\n{\n    display:flex !IMPORTANT;\n    flex-wrap: wrap;\n    flex-direction: row;\n    justify-content : flex-start;\n    align-items : flex-start\n    align-content : flex-start;\n    \n}\n\n.left_div_icon_exclamation{\n    display:flex !IMPORTANT;\n    width:80px;\n    padding:10px;\n    margin:20px 20px 20px 0;\n    height:40px;\n}\n.right_div_text_exclamation{\n    display:flex !IMPORTANT;\n    flex-direction: column;\n    flex-grow: 1;\n    width:200px;\n    padding:10px;\n    margin:0;\n}<\/style>\n\t\t\n\n\n<p>Quando estiveres satisfeito com o teu comando curl, tens de o envolver num comando \"do shell script\" no Apple Script:<\/p>\n\n\n<section class=\"boinx_section\">\n    <div class=\"main_div\">\n        <div class=\"left_div_icon\">\n                <i class=\"icon_highlight\">*<\/i>\n        <\/div>\n\n        <div class=\"right_div_text\">\n                <div><p class=\"text_highlight_headline\">Certifique-se de que substitui xxxxxxxxx pelo seu Endpoint de API de camada espec\u00edfico!<\/p><\/div>\n                <div><p class=\"text_highlight\"><\/p><\/div>\n        <\/div>    \n    <\/div>\n<\/section>\n\n\t\t<style>.boinx_section {\n    margin:30px 0;\n    padding:10px;\n    background-color:rgb(217,237,248);\n    border-radius: 8px;\n  \n}\n\n.icon_highlight {\n    display:block;\n    padding:5px;\n    font-size:80px;\n    color:rgb(58,134,172);\n    line-height:60px;\n}\n\n.text_highlight {\n    color:rgb(58,134,172);\n}\n\n.text_highlight_headline{\n    font-weight:bold;\n    color:rgb(58,134,172);\n}\n\n.main_div\n{\n    display:flex !IMPORTANT;\n    flex-wrap: wrap;\n    flex-direction: row;\n    justify-content : flex-start;\n    align-items : flex-start\n    align-content : flex-start;\n}\n.left_div_icon{\n    display:flex !IMPORTANT;\n    width:40px;\n    padding:0;\n    margin:10px 20px 10px 10px;\n    \n}\n.right_div_text{\n    display:flex !IMPORTANT;\n    flex-direction: column;\n    flex-grow: 1;\n    padding:10px;\n    margin:0;\n    width:200px;\n    }<\/style>\n\t\t\n\n\n<pre class=\"wp-block-code\" data-no-translation=\"\"><code>set layerAPIEndpoint to \"xxxxxxxxx\" -- in our example this would be \"http:\/\/172.28.30.202:8989\/api\/v1\/documents\/458706932\/layers\/BA868701-8131-49CB-8EDD-8C7E6E7CD60B\"\n\nset lowerThirdTitle to \"Hello World!\"\ndo shell script \"curl -d '{\\\"input-values\\\":{\\\"tvGroup_Content__Title\\\":\\\"\" &amp;amp; lowerThirdTitle &amp;amp; \"\\\"}}' -H \\\"Content-Type: application\/json\\\" -X PUT \\\"\" &amp;amp; layerAPIEndpoint &amp;amp; \"\\\"\" as text\n\n<\/code><\/pre>\n\n\n\n<p>O seguinte exemplo de script da Apple mostra como ativar uma camada de meia em meia hora, \u00e0 hora: Isto pode ser \u00fatil para sobreposi\u00e7\u00f5es comerciais. Certifique-se de que utiliza uma camada que se desliga ap\u00f3s um determinado per\u00edodo de tempo (por exemplo, uma camada Placer com uma fonte de filme sem looping).<\/p>\n\n\n<section class=\"boinx_section\">\n    <div class=\"main_div\">\n        <div class=\"left_div_icon\">\n                <i class=\"icon_highlight\">*<\/i>\n        <\/div>\n\n        <div class=\"right_div_text\">\n                <div><p class=\"text_highlight_headline\">Certifique-se de que substitui xxxxxxxxx pelo seu Endpoint de API de camada espec\u00edfico!<\/p><\/div>\n                <div><p class=\"text_highlight\"><\/p><\/div>\n        <\/div>    \n    <\/div>\n<\/section>\n\n\n\n\n<pre class=\"wp-block-code\" data-no-translation=\"\"><code>-- configure your Layer API Endpoint:\nset layerAPIEndpoint to \"xxxxxxxxx\" -- in our example this would be \"http:\/\/172.28.30.202:8989\/api\/v1\/documents\/458706932\/layers\/BA868701-8131-49CB-8EDD-8C7E6E7CD60B\"\n-- repeat endlessly:\nrepeat\n\t-- get the seconds last in this hour\n\tset currentDate to current date\n\tset secondsToNextHour to 3600 - ((minutes of currentDate) * 60 + (seconds of currentDate))\n\t-- --------------------------------------------\n\t-- The following code snippet is useful only if you want to\n\t-- switch the layer live on half hours also.\n\t-- if you don't want this behaviour you can delete this part.\n\t-- --------------------------------------------\n\t-- check if we are currently in the first half of the hour\n\tif secondsToNextHour &amp;gt; 1800 then\n\t\t-- yes, we are in the first half of the hour, so only wait half the time\n\t\tset secondsToNextHour to secondsToNextHour - 1800\n\tend if\n\t-- --------------------------------------------\n\t-- wait until the time to trigger the layer\n\tdelay secondsToNextHour\n\t-- set the specified layer to live:\n\tdo shell script \"curl \\\"\" &amp;amp; layerAPIEndpoint &amp;amp; \"\/setLive\\\"\" as text\n\t-- wait a couple of seconds to make sure we don't glitch in time\n\tdelay 5\nend repeat\n\n<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">Controlar os elementos da interface do utilizador no mimoLive<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">Obter um <span class=\"caps\">API<\/span> Ponto final<\/h3>\n\n\n\n<p><\/p>\n\n\n\n<p>Os pontos finais da API s\u00e3o essenciais para abordar elementos espec\u00edficos no seu documento mimoLive. Para obter uma lista de pontos finais API dispon\u00edveis, consulte <a href=\"https:\/\/mimolive.com\/pt\/manual-do-utilizador\/personalizacao\/api-http\/pontos-finais\/\" data-type=\"user-manual\" data-id=\"32488\">Pontos de extremidade da API<\/a>.<br><br>Antes do mimoLive 5.5 era dif\u00edcil obter a ID do documento e, por exemplo, uma ID de camada com comandos de terminal que procuravam atrav\u00e9s de longos <span class=\"caps\">JSON<\/span> dados. Desde o mimoLive 5.5 \u00e9 muito mais f\u00e1cil:<\/p>\n\n\n\n<p>Em primeiro lugar, copie o ficheiro mimoLive <span class=\"caps\">HTTP<\/span> base do servidor <span class=\"caps\">URL<\/span> na sec\u00e7\u00e3o Controlo Remoto da janela de Prefer\u00eancias do mimoLive (ver imagem acima). Abra um editor de texto (por exemplo, TextEdit da Apple) e cole o conte\u00fado da \u00c1rea de Transfer\u00eancia num documento de texto rec\u00e9m-criado. Certifique-se de que existe <strong>n\u00e3o<\/strong> barra invertida no final do <span class=\"caps\">URL<\/span>! O resultado deve ser o seguinte:<\/p>\n\n\n\n<pre class=\"wp-block-code\" data-no-translation=\"\"><code>http:&#47;&#47;172.28.30.202:8989<\/code><\/pre>\n\n\n\n<p>Na janela do documento mimoLive com o seu rato, pode clicar com o bot\u00e3o direito do rato (ou com o bot\u00e3o de controlo, ou com dois dedos) no objeto de interesse (por exemplo, uma Camada, uma Fonte, um bot\u00e3o de um controlo de Camada) para obter um menu de contexto. Existe um item de menu que lhe permite copiar o <span class=\"caps\">API<\/span> Ponto final para a \u00e1rea de transfer\u00eancia do macOS para a utilizar no seu mimoLive <span class=\"caps\">API<\/span> projeto.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full is-resized\"><img decoding=\"async\" width=\"1000\" height=\"740\" src=\"https:\/\/mimolive.com\/wp-content\/uploads\/2023\/03\/bc6c7e19-e991-48a0-a9b8-b56d690f19b4.png\" alt=\"\" class=\"wp-image-32492\" style=\"width:501px;height:auto\" srcset=\"https:\/\/mimolive.com\/wp-content\/uploads\/2023\/03\/bc6c7e19-e991-48a0-a9b8-b56d690f19b4.png 1000w,  https:\/\/mimolive.com\/wp-content\/uploads\/2023\/03\/bc6c7e19-e991-48a0-a9b8-b56d690f19b4-300x222.png 300w,  https:\/\/mimolive.com\/wp-content\/uploads\/2023\/03\/bc6c7e19-e991-48a0-a9b8-b56d690f19b4-768x568.png 768w,  https:\/\/mimolive.com\/wp-content\/uploads\/2023\/03\/bc6c7e19-e991-48a0-a9b8-b56d690f19b4-16x12.png 16w\" sizes=\"(max-width: 1000px) 100vw, 1000px\" \/><\/figure>\n\n\n\n<p>Por vezes, \u00e9 importante abordar uma variante de camada espec\u00edfica em vez da camada em geral. Se clicar com o bot\u00e3o direito do rato no par\u00e2metro de uma camada, ver\u00e1 que existem diferentes <span class=\"caps\">API<\/span> para a camada ativa atual ou para a variante de camada espec\u00edfica:<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" width=\"1000\" height=\"356\" src=\"https:\/\/mimolive.com\/wp-content\/uploads\/2023\/03\/6120370f-a575-43db-891b-ef3a91d5aec5.png\" alt=\"\" class=\"wp-image-32493\" srcset=\"https:\/\/mimolive.com\/wp-content\/uploads\/2023\/03\/6120370f-a575-43db-891b-ef3a91d5aec5.png 1000w,  https:\/\/mimolive.com\/wp-content\/uploads\/2023\/03\/6120370f-a575-43db-891b-ef3a91d5aec5-300x107.png 300w,  https:\/\/mimolive.com\/wp-content\/uploads\/2023\/03\/6120370f-a575-43db-891b-ef3a91d5aec5-768x273.png 768w,  https:\/\/mimolive.com\/wp-content\/uploads\/2023\/03\/6120370f-a575-43db-891b-ef3a91d5aec5-18x6.png 18w\" sizes=\"(max-width: 1000px) 100vw, 1000px\" \/><\/figure>\n\n\n\n<p>Volte ao seu editor de texto e cole o ficheiro que acabou de copiar <span class=\"caps\">API<\/span> Ponto final ap\u00f3s o <span class=\"caps\">HTTP<\/span> Base do servidor <span class=\"caps\">URL<\/span>. Agora o <span class=\"caps\">URL<\/span> no seu navegador de texto deve ter o seguinte aspeto:<\/p>\n\n\n\n<pre class=\"wp-block-code\" data-no-translation=\"\"><code>http:&#47;&#47;172.28.30.202:8989\/api\/v1\/documents\/458706932\/layers\/BA868701-8131-49CB-8EDD-8C7E6E7CD60B<\/code><\/pre>\n\n\n\n<p>Esta \u00e9 a \u00faltima <span class=\"caps\">API<\/span> Endpoint para endere\u00e7ar uma camada no seu documento. Neste exemplo <strong>458706932<\/strong> \u00e9 o ID do documento e <strong>BA868701-8131-49CB-8EDD-8C7E6E7CD60B<\/strong> \u00e9 o ID de camada espec\u00edfico de uma determinada camada deste documento.<\/p>\n\n\n\n<p>Clicar com o bot\u00e3o direito do rato em determinados elementos da interface do utilizador para revelar um menu de contexto para obter o ponto final espec\u00edfico da API funciona para o seguinte<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Fontes<\/li>\n\n\n\n<li>Camadas<\/li>\n\n\n\n<li>Variantes de camada<\/li>\n\n\n\n<li>Par\u00e2metro de camada<\/li>\n\n\n\n<li>Destinos de sa\u00edda<\/li>\n\n\n\n<li>Conjuntos de camadas<\/li>\n<\/ul>\n\n\n\n<figure class=\"wp-block-image size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"266\" src=\"https:\/\/mimolive.com\/wp-content\/uploads\/2023\/03\/Screenshot-2024-10-08-at-10.19.00-1024x266.png\" alt=\"\" class=\"wp-image-39712\" style=\"width:575px;height:auto\" srcset=\"https:\/\/mimolive.com\/wp-content\/uploads\/2023\/03\/Screenshot-2024-10-08-at-10.19.00-1024x266.png 1024w,  https:\/\/mimolive.com\/wp-content\/uploads\/2023\/03\/Screenshot-2024-10-08-at-10.19.00-300x78.png 300w,  https:\/\/mimolive.com\/wp-content\/uploads\/2023\/03\/Screenshot-2024-10-08-at-10.19.00-768x199.png 768w,  https:\/\/mimolive.com\/wp-content\/uploads\/2023\/03\/Screenshot-2024-10-08-at-10.19.00-18x5.png 18w,  https:\/\/mimolive.com\/wp-content\/uploads\/2023\/03\/Screenshot-2024-10-08-at-10.19.00.png 1132w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\">Exemplo: Ligar e desligar <span class=\"caps\">DESLIGADO<\/span> a Camada<\/h3>\n\n\n\n<p>Com os dados recuperados <span class=\"caps\">API<\/span> Endpoint para uma determinada camada, pode activ\u00e1-lo e desactiv\u00e1-lo com os seguintes comandos de terminal.<\/p>\n\n\n<section class=\"boinx_section\">\n    <div class=\"main_div\">\n        <div class=\"left_div_icon\">\n                <i class=\"icon_highlight\">*<\/i>\n        <\/div>\n\n        <div class=\"right_div_text\">\n                <div><p class=\"text_highlight_headline\"><\/p><\/div>\n                <div><p class=\"text_highlight\">Certifique-se de que substitui xxxxxxxxx pelo Endpoint da API do passo anterior!<\/p><\/div>\n        <\/div>    \n    <\/div>\n<\/section>\n\n\n\n\n<pre class=\"wp-block-code\" data-no-translation=\"\"><code>curl xxxxxxxxx\/setLive\ncurl xxxxxxxxx\/setOff\ncurl xxxxxxxxx\/toggleLive\n# our example will look like this:\ncurl http:\/\/172.28.30.202:8989\/api\/v1\/documents\/458706932\/layers\/BA868701-8131-49CB-8EDD-8C7E6E7CD60B\/setLive<\/code><\/pre>\n\n\n<section class=\"boinx_section\">\n    <div class=\"main_div\">\n        <div class=\"left_div_icon\">\n                <i class=\"icon_highlight\">*<\/i>\n        <\/div>\n\n        <div class=\"right_div_text\">\n                <div><p class=\"text_highlight_headline\">Os URLs tamb\u00e9m funcionam num navegador da Internet<\/p><\/div>\n                <div><p class=\"text_highlight\">Esses URLs (sem o comando \"curl\") tamb\u00e9m podem ser colocados na barra de endere\u00e7os de um navegador de Internet. Assim que carregar em \"return\", o browser chamar\u00e1 o servidor HTTP mimoLive e executar\u00e1 o comando que especificou. Se tiver dados JSON que precisa de enviar para o ponto final da API, pode adicion\u00e1-los tamb\u00e9m ao URL, veja \"Converter um comando CURL com dados JSON para um URL HTTP para pedidos HTTP simples\" abaixo.<\/p><\/div>\n        <\/div>    \n    <\/div>\n<\/section>\n\n\n\n\n<p>Uma forma f\u00e1cil de obter o URL HTTP completo para ativar ou desativar o estado em direto de uma camada \u00e9 clicar com o bot\u00e3o direito do rato no bot\u00e3o Em direto da camada para revelar um menu de contexto e selecionar 'Copiar URL para definir camada em direto'. Isto copiar\u00e1 o URL para a \u00e1rea de transfer\u00eancia para sua utiliza\u00e7\u00e3o. Na captura de ecr\u00e3, pode ver o menu de contexto para o bot\u00e3o Em direto de uma camada Lower Third.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"249\" src=\"https:\/\/mimolive.com\/wp-content\/uploads\/2023\/03\/Screenshot-2024-10-08-at-10.13.16-1024x249.png\" alt=\"\" class=\"wp-image-39711\" style=\"width:643px;height:auto\" srcset=\"https:\/\/mimolive.com\/wp-content\/uploads\/2023\/03\/Screenshot-2024-10-08-at-10.13.16-1024x249.png 1024w,  https:\/\/mimolive.com\/wp-content\/uploads\/2023\/03\/Screenshot-2024-10-08-at-10.13.16-300x73.png 300w,  https:\/\/mimolive.com\/wp-content\/uploads\/2023\/03\/Screenshot-2024-10-08-at-10.13.16-768x187.png 768w,  https:\/\/mimolive.com\/wp-content\/uploads\/2023\/03\/Screenshot-2024-10-08-at-10.13.16-18x4.png 18w,  https:\/\/mimolive.com\/wp-content\/uploads\/2023\/03\/Screenshot-2024-10-08-at-10.13.16.png 1174w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\">Exemplo: Modifica\u00e7\u00e3o de um valor de uma camada<\/h3>\n\n\n\n<p>- Todos os par\u00e2metros de uma camada podem ser definidos atrav\u00e9s da fun\u00e7\u00e3o <span class=\"caps\">HTTP<\/span> <span class=\"caps\">API<\/span>. \u00c9 necess\u00e1rio encontrar a chave correcta para definir um novo valor. No nosso exemplo, vamos definir o t\u00edtulo de um <a href=\"https:\/\/mimolive.com\/pt\/manual-do-utilizador\/terco-inferior\/\">Camada Lower Third<\/a> com a chave tvGroup_Content__Title. Porque precisamos de enviar o novo valor numa <span class=\"caps\">JSON<\/span> para o ficheiro <span class=\"caps\">HTTP<\/span> servidor com um <span class=\"caps\">PUT<\/span> o comando curl fica um pouco cheio.<\/p>\n\n\n\n<p><i>*<\/i>Certifique-se de que substitui xxxxxxxxx pela sua camada espec\u00edfica <span class=\"caps\">API<\/span> Ponto final!<\/p>\n\n\n\n<pre class=\"wp-block-code\" data-no-translation=\"\"><code>curl -d '{\"input-values\":{\"tvGroup_Content__Title\":\"My new title\"}}' -H \"Content-Type: application\/json\" -X PUT \"xxxxxxxxx\"\n<\/code><\/pre>\n\n\n\n<p>Uma maneira r\u00e1pida de obter um URL HTTP completo para acionar a atualiza\u00e7\u00e3o de uma propriedade de camada \u00e9 clicar com o bot\u00e3o direito do mouse no nome da propriedade, revelando um menu de contexto, e selecionar \"Copiar URL para alterar '.....' \"Este comando de menu copia um URL HTTP para a \u00e1rea de transfer\u00eancia, que, quando chamado (por exemplo, num navegador da Internet), definir\u00e1 a propriedade para o seu valor atual. Examinando o URL, pode determinar que parte do mesmo precisa de ser modificada para enviar os seus pr\u00f3prios dados para esta propriedade. Na captura de ecr\u00e3, pode ver o menu de contexto para copiar o URL para alterar a legenda de uma camada Lower Third.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"752\" height=\"334\" src=\"https:\/\/mimolive.com\/wp-content\/uploads\/2023\/03\/Screenshot-2024-10-08-at-10.05.39.png\" alt=\"\" class=\"wp-image-39708\" style=\"width:349px;height:auto\" srcset=\"https:\/\/mimolive.com\/wp-content\/uploads\/2023\/03\/Screenshot-2024-10-08-at-10.05.39.png 752w,  https:\/\/mimolive.com\/wp-content\/uploads\/2023\/03\/Screenshot-2024-10-08-at-10.05.39-300x133.png 300w,  https:\/\/mimolive.com\/wp-content\/uploads\/2023\/03\/Screenshot-2024-10-08-at-10.05.39-18x8.png 18w\" sizes=\"(max-width: 752px) 100vw, 752px\" \/><\/figure>\n\n\n\n<pre class=\"wp-block-code\" data-no-translation=\"\"><code>http:\/\/127.0.0.1:8989\/api\/v1\/documents\/xxxxxxxxxxxx\/layers\/yyyyyyyyyyyy\/variants\/zzzzzzzzzzzz?include=data.attributes.input-values&amp;fields&#91;input-values]=tvGroup_Content__Subtitle&amp;update=%7B%22input-values%22:%7B%22tvGroup_Content__Subtitle%22:%22<strong>mimoLive%20User<\/strong>%22%7D%7D<\/code><\/pre>\n\n\n<section class=\"boinx_exclamation\">\n    <div class=\"main_div_exclamation\">\n        <div class=\"left_div_icon_exclamation\">\n                <i class=\"icon_exclamation\">\u2757<\/i>\n        <\/div>\n\n        <div class=\"right_div_text_exclamation\">\n                <div><p class=\"text_exclamation_headline\">O novo valor no URL deve ser codificado no URL!<\/p><\/div>\n                <div><p class=\"text_exclamation\">Neste exemplo, o espa\u00e7o entre \"mimoLive\" e \"User\" \u00e9 codificado como<\/p><\/div>\n        <\/div>    \n    <\/div>\n<\/section>\n\n\n\n\n<h2 class=\"wp-block-heading\">Melhores pr\u00e1ticas<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">Cole\u00e7\u00e3o de \u00dateis <span class=\"caps\">API<\/span> Comandos para explorar<\/h3>\n\n\n\n<h4 class=\"wp-block-heading\">Definir o <span class=\"caps\">RTMP<\/span> <span class=\"caps\">URL<\/span> e Chave de transmiss\u00e3o de um destino de sa\u00edda de transmiss\u00e3o em direto:<\/h4>\n\n\n\n<pre class=\"wp-block-code\" data-no-translation=\"\"><code>curl --data '{\"data\": { \"attributes\": {\"settings\": {\"rtmpurl\":\"rtmp:\/\/mystreaminghost.com\", \"streamingkey\":\"<strong>MYTOTALLYSECRETSTREAMKEY<\/strong>\"} } } }' --request PATCH http:\/\/192.168.0.100:8989\/api\/v1\/documents\/xxxxxxxxx\/output-destinations\/yyyyyyyyyyyyy<\/code><\/pre>\n\n\n\n<h4 class=\"wp-block-heading\">Definir o nome do ficheiro e o caminho de um destino de sa\u00edda do File Writer<\/h4>\n\n\n\n<pre class=\"wp-block-code\" data-no-translation=\"\"><code>curl --data '{\"data\": { \"attributes\": {\"settings\": { \"location\": \"<strong>~\/Destktop\/Recordings<\/strong>\", \"filename\": \"<strong>MyGreatShow %year-%month-%day-%hour-%minute.%extension<\/strong>\" } } } }' --request PATCH http:\/\/192.168.0.100:8989\/api\/v1\/documents\/xxxxxxxxxxxx\/output-destinations\/yyyyyyyyyyyy<\/code><\/pre>\n\n\n\n<h4 class=\"wp-block-heading\">Definir a origem de v\u00eddeo de uma camada de estratifica\u00e7\u00e3o<\/h4>\n\n\n\n<p>yyyyyyyyyyyyy ser\u00e1 o <span class=\"caps\">UUID<\/span> da fonte de v\u00eddeo. (e.g CCAF4418-367A-415F-AD25-6536C3EF3512)<\/p>\n\n\n\n<p>xxxxxxxxxxxxxxx ser\u00e1 o <span class=\"caps\">API<\/span> ponto de extremidade de uma determinada variante de camada. (e.g. http:\/\/172.28.30.202:8989\/api\/v1\/documents\/2014814935\/layers\/BA868701-8131-49CB-8EDD-8C7E6E7CD60B\/variants\/AA868701-8131-49CB-8EDD-8C7E6E7CD60A)<\/p>\n\n\n\n<pre class=\"wp-block-code\" data-no-translation=\"\"><code>curl -d '{\"input-values\":{\"tvIn_VideoSourceAImage\":\"yyyyyyyyyyyyy\"}}' -H \"Content-Type: application\/json\" -X PUT \"xxxxxxxxxxxxxxxx\"<\/code><\/pre>\n\n\n\n<h4 class=\"wp-block-heading\">Definir o volume de uma camada que tenha um bot\u00e3o de volume de \u00e1udio<\/h4>\n\n\n\n<p>Com este comando curl, \u00e9 poss\u00edvel alterar o volume de \u00e1udio de uma camada que tenha um bot\u00e3o de ajuste de \u00e1udio (como o bot\u00e3o <a href=\"https:\/\/mimolive.com\/pt\/manual-do-utilizador\/placer\/\">Camada de plaqueamento<\/a>). O valor \"volume\" pode assumir valores de 0,0 a 1,0.<\/p>\n\n\n\n<p>xxxxxxxxxxxxxxx ser\u00e1 o <span class=\"caps\">API<\/span> ponto final da camada (por exemplo, http:\/\/10.101.2.2:8989\/api\/v1\/documents\/13195157\/layers\/BA868701-8131-49CB-8EDD-8C7E6E7CD60B)<\/p>\n\n\n\n<pre class=\"wp-block-code\" data-no-translation=\"\"><code>curl -d '{\"volume\": 0.5}' -H \"Content-Type: application\/json\" -X PUT \"xxxxxxxxxxxxxxxx\"<\/code><\/pre>\n\n\n\n<h4 class=\"wp-block-heading\">Definir a cor de uma camada de fundo<\/h4>\n\n\n\n<p>xxxxxxxxxxxxxxx ser\u00e1 o <span class=\"caps\">API<\/span> ponto de extremidade de uma determinada variante de camada. (e.g. http:\/\/172.28.30.202:8989\/api\/v1\/documents\/2014814935\/layers\/BA868701-8131-49CB-8EDD-8C7E6E7CD60B\/variants\/AA868701-8131-49CB-8EDD-8C7E6E7CD60A)<\/p>\n\n\n\n<pre class=\"wp-block-code\" data-no-translation=\"\"><code>curl -d '{\"input-values\":{\"tvGroup_Appearance__Color_1\":{\"red\": 1.0, \"blue\": 0.5, \"green\": 0, \"alpha\": 0.5}}}' -H \"Content-Type: application\/json\" -X PUT \"xxxxxxxxxxxxxxxx\"<\/code><\/pre>\n\n\n\n<h4 class=\"wp-block-heading\">Limpar o caminho do ficheiro de uma fonte de v\u00eddeo da \u00daltima Grava\u00e7\u00e3o<\/h4>\n\n\n\n<p>No seu <a href=\"https:\/\/mimolive.com\/pt\/manual-do-utilizador\/fontes-e-o-repositorio-de-fontes\/\">Reposit\u00f3rio de Fontes<\/a>, pode ter um <a href=\"https:\/\/mimolive.com\/pt\/manual-do-utilizador\/fonte-do-ultimo-registo\/\">\u00daltima fonte de registo<\/a> que dar\u00e1 acesso \u00e0 \u00faltima grava\u00e7\u00e3o que qualquer Destino de Sa\u00edda de Grava\u00e7\u00e3o de Ficheiros anunciar\u00e1. Numa aplica\u00e7\u00e3o de quiosque, ser\u00e1 necess\u00e1rio limpar o caminho da \u00faltima grava\u00e7\u00e3o para que o utilizador seguinte da esta\u00e7\u00e3o n\u00e3o possa rever a grava\u00e7\u00e3o do utilizador anterior. Com o seguinte <a href=\"https:\/\/mimolive.com\/pt\/manual-do-utilizador\/automatizacao\/\">Comando da camada de automatiza\u00e7\u00e3o<\/a> pode apagar esta informa\u00e7\u00e3o da \u00daltima fonte de grava\u00e7\u00e3o:<\/p>\n\n\n\n<pre class=\"wp-block-code\" data-no-translation=\"\"><code>httpRequest(http:\/\/127.0.0.1:8989\/api\/v1\/documents\/2014814935\/sources\/2014814935-413AC0A3-AC43-4A7D-A228-6D0181BF1476?update=%7B%22filepath%22%3A%22%22%7D)<\/code><\/pre>\n\n\n\n<h4 class=\"wp-block-heading\">Armazenamento <span class=\"caps\">JSON<\/span> Dados no documento mimoLive<\/h4>\n\n\n\n<p>Com o ponto de extremidade \"datastores\" pode armazenar qualquer tipo de dados no documento mimoLive para os manter durante um recarregamento do documento. \u00c9 necess\u00e1rio utilizar um \"<span class=\"caps\">PUT<\/span>\" para guardar os dados e um pedido \"<span class=\"caps\">OBTER<\/span>\" para o ler de volta. Pode armazenar qualquer tipo de dados, mas neste exemplo estamos a armazenar <span class=\"caps\">JSON<\/span> Dados porque este parece ser um caso de utiliza\u00e7\u00e3o muito comum. Se pretender armazenar dados diferentes, tem de ajustar o par\u00e2metro -H em conformidade.<\/p>\n\n\n\n<p>Comando Curl para armazenar dados:<\/p>\n\n\n\n<pre class=\"wp-block-code\" data-no-translation=\"\"><code>curl \u2014data '{\"myData1\": 1.5, \"myData2\":\"Some text\"}' -H \"Content-Type: application\/json\" -X PUT http:\/\/127.0.0.1:8989\/api\/v1\/documents\/1643911183\/datastores\/myDataStore1<\/code><\/pre>\n\n\n\n<p>Comando Curl para ler os dados de volta:<\/p>\n\n\n\n<pre class=\"wp-block-code\" data-no-translation=\"\"><code>curl -X <span class=\"caps\">GET<\/span> http:\/\/127.0.0.1:8989\/api\/v1\/documents\/1643911183\/datastores\/myDataStore1<\/code><\/pre>\n\n\n\n<h4 class=\"wp-block-heading\">Atualizar o caminho do ficheiro de origem de uma fonte de ficheiro multim\u00e9dia<\/h4>\n\n\n\n<p>Pode querer trocar o filme que \u00e9 reproduzido ou substituir um an\u00fancio apresentado por um <a href=\"https:\/\/mimolive.com\/pt\/manual-do-utilizador\/ficheiro-multimedia\/\">Fonte do ficheiro multim\u00e9dia<\/a>. Isto pode ser feito com um comando de atualiza\u00e7\u00e3o executado na fonte <span class=\"caps\">API<\/span> ponto final.<\/p>\n\n\n\n<p>Certifique-se de que o modo de refer\u00eancia do ficheiro da Fonte de M\u00e9dia est\u00e1 definido para \"Caminho absoluto\". Obtenha o <span class=\"caps\">API<\/span> para esta fonte, clicando com o bot\u00e3o direito do rato na coluna da esquerda e seleccionando \"Copiar ponto de extremidade da fonte <span class=\"caps\">API<\/span> Ponto final para a \u00e1rea de transfer\u00eancia\" no menu de contexto. Criar um <span class=\"caps\">URL<\/span> da seguinte forma:<\/p>\n\n\n\n<pre class=\"wp-block-code\" data-no-translation=\"\"><code>http:\/\/127.0.0.1:8989\/api\/v1\/documents\/&lt;YOUR DOCUMENT ID&gt;\/sources\/&lt;SOURCE API ENDPOINT&gt;?update={\"filepath\":\"&lt;LOCAL FILE PATH&gt;\"}<\/code><\/pre>\n\n\n\n<p>Certifique-se de que codifica o <span class=\"caps\">JSON<\/span> dados no <span class=\"caps\">URL<\/span> para obter um <span class=\"caps\">URL<\/span> que pode ser usado em um comando curl como este:<\/p>\n\n\n\n<pre class=\"wp-block-code\" data-no-translation=\"\"><code>curl -X GET http:\/\/127.0.0.1:8989\/api\/v1\/documents\/1748069974\/sources\/1748069974-334DA2E4-DFF3-4225-8F4A-D09D40A6BD5D?update=%7B%22filepath%22:%22~\/Desktop\/Screen%20Recording%202022-07-27%20at%2012.18.23.mov%22%7D<\/code><\/pre>\n\n\n\n<p><i>*<\/i>Tenha em aten\u00e7\u00e3o que pode utilizar o \"~\" no in\u00edcio do caminho do ficheiro para fazer refer\u00eancia ao diret\u00f3rio pessoal do utilizador atual.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Convers\u00e3o de um <span class=\"caps\">CURL<\/span> comando com <span class=\"caps\">JSON<\/span> Dados para um <span class=\"caps\">HTTP<\/span> <span class=\"caps\">URL<\/span> para simples <span class=\"caps\">HTTP<\/span> Pedidos<\/h3>\n\n\n\n<p>Por vezes, s\u00f3 \u00e9 poss\u00edvel enviar um simples <span class=\"caps\">HTTP<\/span> ao mimoLive em vez de usar um comando curl, por exemplo, no caso de aplica\u00e7\u00f5es de automatiza\u00e7\u00e3o de terceiros ou da pr\u00f3pria camada de automatiza\u00e7\u00e3o mimoLive. Isto requer a convers\u00e3o do bloco de dados do comando curl para fazer parte do <span class=\"caps\">URL<\/span>. Pode faz\u00ea-lo da seguinte forma:<\/p>\n\n\n\n<p>Vamos supor que temos o seguinte comando curl:<\/p>\n\n\n\n<pre class=\"wp-block-code\" data-no-translation=\"\"><code>curl --data '{\"data\": { \"attributes\": {\"settings\": {\"rtmpurl\":\"rtmp:\/\/mystreaminghost.com\", \"streamingkey\":\"MYTOTALLYSECRETSTREAMKEY\"} } } }' --request PATCH http:\/\/192.168.0.100:8989\/api\/v1\/documents\/458706932\/output-destinations\/4D072496-1CE3-418E-B73E-59A2927A2110<\/code><\/pre>\n\n\n\n<p>Tomaria o <strong><span class=\"caps\">HTTP<\/span> parte<\/strong> primeiro:<\/p>\n\n\n\n<pre class=\"wp-block-code\" data-no-translation=\"\"><code>http:&#47;&#47;192.168.0.100:8989\/api\/v1\/documents\/458706932\/output-destinations\/4D072496-1CE3-418E-B73E-59A2927A2110<\/code><\/pre>\n\n\n\n<p>Adicionar <strong>?update=<\/strong> a ele:<\/p>\n\n\n\n<pre class=\"wp-block-code\" data-no-translation=\"\"><code>http:&#47;&#47;192.168.0.100:8989\/api\/v1\/documents\/458706932\/output-destinations\/4D072496-1CE3-418E-B73E-59A2927A2110?update=<\/code><\/pre>\n\n\n\n<p>Obter todas as <strong>-data string<\/strong> e remover todos os espa\u00e7os desnecess\u00e1rios:<\/p>\n\n\n\n<pre class=\"wp-block-code\" data-no-translation=\"\"><code>{\"data\":{\"attributes\":{\"settings\":{\"rtmpurl\":\"rtmp:\/\/mystreaminghost.com\",\"streamingkey\":\"MYTOTALLYSECRETSTREAMKEY\"}}}}<\/code><\/pre>\n\n\n\n<p>Codificar isto para o seu <span class=\"caps\">URL<\/span> forma por <strong>escapando aos caracteres n\u00e3o conformes com o URL<\/strong> (por exemplo, utilizando https:\/\/www.urlencoder.org\/)<\/p>\n\n\n\n<pre class=\"wp-block-code\" data-no-translation=\"\"><code>%7B%22data%22%3A%7B%22attributes%22%3A%7B%22settings%22%3A%7B%22rtmpurl%22%3A%22rtmp%3A%2F%2Fmystreaminghost.com%22%2C%22streamingkey%22%3A%22MYTOTALLYSECRETSTREAMKEY%22%7D%7D%7D%7D<\/code><\/pre>\n\n\n\n<p>Por fim, ponha tudo isto <strong>ap\u00f3s a ?update=<\/strong> assim:<\/p>\n\n\n\n<pre class=\"wp-block-code\" data-no-translation=\"\"><code>http:&#47;&#47;192.168.0.100:8989\/api\/v1\/documents\/458706932\/output-destinations\/4D072496-1CE3-418E-B73E-59A2927A2110?update=%7B%22data%22%3A%7B%22attributes%22%3A%7B%22settings%22%3A%7B%22rtmpurl%22%3A%22rtmp%3A%2F%2Fmystreaminghost.com%22%2C%22streamingkey%22%3A%22MYTOTALLYSECRETSTREAMKEY%22%7D%7D%7D%7D<\/code><\/pre>\n\n\n\n<p>Agora pode utilizar este <span class=\"caps\">URL<\/span> num simples <span class=\"caps\">HTTP<\/span> pedido.<\/p>\n\n\n\n<p><\/p>","protected":false},"excerpt":{"rendered":"<p>Prerequisites &#8211; Open the document you want to manipulate in mimoLive.&#8211; Make sure the document is in a finished state so that the API endpoints like Layers do not change anymore. Please be aware that if you remove a layer and add it again this layer will have a different Layer ID when talking to [&hellip;]<\/p>","protected":false},"author":3,"featured_media":0,"parent":32486,"menu_order":2,"template":"","meta":{"_acf_changed":false,"_angie_page":false,"_lmt_disableupdate":"","_lmt_disable":"","footnotes":""},"categories":[258],"tags":[],"class_list":["post-32490","user-manual","type-user-manual","status-publish","hentry","category-manual"],"acf":[],"_links":{"self":[{"href":"https:\/\/mimolive.com\/pt\/wp-json\/wp\/v2\/user-manual\/32490","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/mimolive.com\/pt\/wp-json\/wp\/v2\/user-manual"}],"about":[{"href":"https:\/\/mimolive.com\/pt\/wp-json\/wp\/v2\/types\/user-manual"}],"author":[{"embeddable":true,"href":"https:\/\/mimolive.com\/pt\/wp-json\/wp\/v2\/users\/3"}],"version-history":[{"count":8,"href":"https:\/\/mimolive.com\/pt\/wp-json\/wp\/v2\/user-manual\/32490\/revisions"}],"predecessor-version":[{"id":39724,"href":"https:\/\/mimolive.com\/pt\/wp-json\/wp\/v2\/user-manual\/32490\/revisions\/39724"}],"up":[{"embeddable":true,"href":"https:\/\/mimolive.com\/pt\/wp-json\/wp\/v2\/user-manual\/32486"}],"wp:attachment":[{"href":"https:\/\/mimolive.com\/pt\/wp-json\/wp\/v2\/media?parent=32490"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/mimolive.com\/pt\/wp-json\/wp\/v2\/categories?post=32490"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/mimolive.com\/pt\/wp-json\/wp\/v2\/tags?post=32490"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}