{"id":32486,"date":"2023-03-08T16:31:06","date_gmt":"2023-03-08T15:31:06","guid":{"rendered":"https:\/\/mimolive.com\/?post_type=user-manual&#038;p=32486"},"modified":"2024-10-08T09:55:45","modified_gmt":"2024-10-08T07:55:45","slug":"api-http","status":"publish","type":"user-manual","link":"https:\/\/mimolive.com\/pt\/user-manual\/remote-control-automation\/http-api\/","title":{"rendered":"API HTTP"},"content":{"rendered":"<p>Por um lado, o mimoLive publica um <a href=\"https:\/\/mimolive.com\/pt\/manual-do-utilizador\/superficies-de-controlo-a-distancia\/\">IU do controlo remoto<\/a> que pode utilizar para criar interfaces de utilizador personalizadas que podem ser utilizadas num tablet ou dispositivo semelhante para controlar remotamente o mimoLive.<\/p>\n\n\n\n<p>Al\u00e9m disso, o mimoLive permite o acesso a <span class=\"caps\">HTTP<\/span> <span class=\"caps\">API<\/span> para que possa criar scripts personalizados (via <strong>bash<\/strong> e <strong>enrolar<\/strong>, <strong>AppleScript<\/strong>, incorporado <a href=\"https:\/\/mimolive.com\/pt\/manual-do-utilizador\/automatizacao\/\">Camada de automatiza\u00e7\u00e3o<\/a> ou algo semelhante que possa falar com um <span class=\"caps\">HTTP<\/span> servidor) que controlam v\u00e1rios aspectos do mimoLive - as possibilidades s\u00e3o quase infinitas. (Veja <a href=\"https:\/\/mimolive.com\/pt\/manual-do-utilizador\/exemplos-de-utilizacao-da-api\/\">Exemplos de <span class=\"caps\">API<\/span> utiliza\u00e7\u00e3o<\/a>)<\/p>\n\n\n\n<p>Neste t\u00f3pico, centrar-nos-emos nos seguintes aspectos <span class=\"caps\">HTTP<\/span> <span class=\"caps\">API<\/span>. Como o <span class=\"caps\">API<\/span> baseia-se no <a href=\"http:\/\/jsonapi.org\/\" target=\"_blank\" rel=\"noreferrer noopener\">json:api especifica\u00e7\u00e3o<\/a> n\u00e3o se esque\u00e7a de se familiarizar com ele antes de trabalhar com o mimoLive <span class=\"caps\">API<\/span>.<\/p>\n\n\n\n<p>*Para al\u00e9m da documenta\u00e7\u00e3o, tamb\u00e9m pode consultar os nossos scripts de demonstra\u00e7\u00e3o PHP no github<\/p>\n\n\n\n<p><br>Al\u00e9m disso, est\u00e1 dispon\u00edvel um exemplo para Shell e Apple Script.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"api-endpoint\"><span class=\"caps\">API<\/span> Acesso<\/h3>\n\n\n\n<p>O mimoLive <span class=\"caps\">API<\/span> est\u00e1 acess\u00edvel na mesma m\u00e1quina em que o mimoLive est\u00e1 a ser executado (atrav\u00e9s de \"localhost\") e na rede local (atrav\u00e9s de \".local\").<\/p>\n\n\n\n<p>Se ativado, o mimoLive serve um <span class=\"caps\">HTTP<\/span> servidor na \"porta 8989\".<\/p>\n\n\n\n<p>Todos os <span class=\"caps\">API<\/span> s\u00e3o prefixadas com o caminho \"\/api\/v1\/\", pelo que, se pretender obter uma lista de documentos abertos, deve chamar \"http:\/\/localhost:8989\/api\/v1\/documents\".<\/p>\n\n\n\n<p>Todos os IDs (para documentos, camadas, fontes, destinos de sa\u00edda, etc.) s\u00e3o armazenados e persistem no disco, pelo que a codifica\u00e7\u00e3o destes valores \u00e9 segura desde que o mesmo documento seja utilizado no mimoLive.<br><br>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> para saber mais sobre todos os pontos finais fornecidos.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"authentication\">Autentica\u00e7\u00e3o<\/h3>\n\n\n\n<p>A partir do mimoLive 3.1, se o utilizador tiver ativado a autentica\u00e7\u00e3o nas prefer\u00eancias do mimoLive, \u00e9 necess\u00e1rio fornecer a palavra-passe do utilizador para cada pedido ao <span class=\"caps\">API<\/span> o que pode ser feito de duas maneiras:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Definir o nome personalizado <span class=\"caps\">HTTP<\/span> cabe\u00e7alho \"X-MimoLive-Password-SHA256: xxxxxxx\"<\/li>\n\n\n\n<li>Anexar o par\u00e2metro de consulta \"?pwSHA256=xxxxxxx\"<\/li>\n<\/ul>\n\n\n\n<p>Em ambos os casos, xxxxxxx tem de ser substitu\u00eddo pela palavra-passe original (em <span class=\"caps\">UTF<\/span>-8) com hash utilizando <span class=\"caps\">SHA<\/span>-256 e codificado como uma cadeia de d\u00edgitos hexadecimais.<br>Para facilitar o desenvolvimento de scripts e aplica\u00e7\u00f5es personalizadas, o mimoLive mostra o seguinte <span class=\"caps\">API<\/span> e permite copiar para a \u00e1rea de transfer\u00eancia no painel de prefer\u00eancias dos Controlos Remotos:<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img fetchpriority=\"high\" decoding=\"async\" width=\"1000\" height=\"448\" src=\"https:\/\/mimolive.com\/wp-content\/uploads\/2023\/03\/dddc6bf5-964b-493c-b35e-ee5b37e44e40.png\" alt=\"\" class=\"wp-image-32487\" srcset=\"https:\/\/mimolive.com\/wp-content\/uploads\/2023\/03\/dddc6bf5-964b-493c-b35e-ee5b37e44e40.png 1000w,  https:\/\/mimolive.com\/wp-content\/uploads\/2023\/03\/dddc6bf5-964b-493c-b35e-ee5b37e44e40-300x134.png 300w,  https:\/\/mimolive.com\/wp-content\/uploads\/2023\/03\/dddc6bf5-964b-493c-b35e-ee5b37e44e40-768x344.png 768w,  https:\/\/mimolive.com\/wp-content\/uploads\/2023\/03\/dddc6bf5-964b-493c-b35e-ee5b37e44e40-18x8.png 18w\" sizes=\"(max-width: 1000px) 100vw, 1000px\" \/><\/figure>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"deprecated-authentication-method\">M\u00e9todo de autentica\u00e7\u00e3o obsoleto<\/h4>\n\n\n\n<p>Antes da vers\u00e3o 3.1 do mimoLive, os pedidos contra o <span class=\"caps\">API<\/span> seria autenticado utilizando o c\u00f3digo especial <span class=\"caps\">HTTP<\/span> cabe\u00e7alho \"X-MimoLive-Password: \" ou o par\u00e2metro de consulta \"?pw=\" em cada pedido.<br>Infelizmente, este m\u00e9todo envia a palavra-passe em claro atrav\u00e9s de uma liga\u00e7\u00e3o de rede potencialmente insegura que pode expor dados sens\u00edveis se o <span class=\"caps\">HTTP<\/span> <span class=\"caps\">API<\/span> A palavra-passe est\u00e1 a ser reutilizada noutro local.<br>Embora continue a funcionar, este m\u00e9todo de autentica\u00e7\u00e3o \u00e9, por conseguinte, desaconselhado e poder\u00e1 ser removido no futuro.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"errors\">Erros<\/h3>\n\n\n\n<p>Se ocorrer um erro durante um pedido, o mimoLive interromper\u00e1 o processamento desse pedido e devolver\u00e1 uma mensagem <span class=\"caps\">HTTP<\/span> resposta com o seu c\u00f3digo de estado indicando o erro. A resposta tamb\u00e9m cont\u00e9m um <span class=\"caps\">JSON<\/span> matriz de objectos de erro que cont\u00e9m informa\u00e7\u00f5es adicionais sobre cada erro que ocorreu:<\/p>\n\n\n\n<pre class=\"wp-block-code\" data-no-translation=\"\"><code>{\n  \"errors\": &#91;\n    {\n      \"status\": \"404\",\n      \"title\": \"Not Found\",\n      \"description\": \"The requested object could not be found\"\n    }\n  ]\n}<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"remote-access\">Acesso remoto atrav\u00e9s da Internet<\/h3>\n\n\n\n<p>Como o <span class=\"caps\">HTTP<\/span> <span class=\"caps\">API<\/span> \u00e9 ativado por um servidor Web integrado no mimoLive, o acesso remoto ao <span class=\"caps\">HTTP<\/span> <span class=\"caps\">API<\/span> de qualquer lugar na Internet pode ser ativado dando ao computador mimoLive um n\u00famero IP p\u00fablico. Uma vez que o <span class=\"caps\">HTTP<\/span> <span class=\"caps\">API<\/span> n\u00e3o estiver muito bem protegido, esta \u00e9 uma m\u00e1 ideia. Uma maneira melhor de habilitar o acesso remoto ao <span class=\"caps\">HTTP<\/span> <span class=\"caps\">API<\/span> atrav\u00e9s de uma rede p\u00fablica \u00e9 <a href=\"https:\/\/mimolive.com\/pt\/manual-do-utilizador\/aceda-remotamente-as-superficies-de-controlo-remoto-e-a-api-http\/\">estabelecer um t\u00fanel seguro para o seu computador anfitri\u00e3o mimoLive utilizando o ngrok<\/a>.<\/p>","protected":false},"excerpt":{"rendered":"<p>On one hand, mimoLive publishes a Remote Control UI which you can use to create custom user interfaces that you can use on a tablet or similar device to remote control mimoLive. Additionally, mimoLive provides access to the bare HTTP API so you can create custom scripts (via bash and curl, AppleScript, build-in Automation Layer [&hellip;]<\/p>","protected":false},"author":3,"featured_media":0,"parent":40865,"menu_order":2,"template":"","meta":{"_acf_changed":false,"_angie_page":false,"_lmt_disableupdate":"","_lmt_disable":"","footnotes":""},"categories":[258],"tags":[],"class_list":["post-32486","user-manual","type-user-manual","status-publish","hentry","category-manual"],"acf":[],"_links":{"self":[{"href":"https:\/\/mimolive.com\/pt\/wp-json\/wp\/v2\/user-manual\/32486","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":1,"href":"https:\/\/mimolive.com\/pt\/wp-json\/wp\/v2\/user-manual\/32486\/revisions"}],"predecessor-version":[{"id":39706,"href":"https:\/\/mimolive.com\/pt\/wp-json\/wp\/v2\/user-manual\/32486\/revisions\/39706"}],"up":[{"embeddable":true,"href":"https:\/\/mimolive.com\/pt\/wp-json\/wp\/v2\/user-manual\/40865"}],"wp:attachment":[{"href":"https:\/\/mimolive.com\/pt\/wp-json\/wp\/v2\/media?parent=32486"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/mimolive.com\/pt\/wp-json\/wp\/v2\/categories?post=32486"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/mimolive.com\/pt\/wp-json\/wp\/v2\/tags?post=32486"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}