{"id":295,"date":"2020-05-22T21:06:08","date_gmt":"2020-05-22T21:06:08","guid":{"rendered":"https:\/\/franciscotapia.com\/?p=295"},"modified":"2020-11-29T11:44:08","modified_gmt":"2020-11-29T11:44:08","slug":"php-connection-to-confluence","status":"publish","type":"post","link":"https:\/\/franciscotapia.com\/en\/php-connection-to-confluence\/","title":{"rendered":"How to connect your PHP web application with confluence"},"content":{"rendered":"<p class=\" translation-block\">With a simple call by \"get\" using <strong>CURL<\/strong> php library, we can connect to the <strong>Confluence<\/strong> documentation manager and link this documentation to your website. Let's see how we can do it.<\/p>\n\n\n\n<p class=\" translation-block\">The first thing to do is read the <strong><a rel=\"noreferrer noopener\" href=\"https:\/\/docs.atlassian.com\/atlassian-confluence\/REST\/6.6.0\/\" target=\"_self\">Confluence REST API Documentation<\/a><\/strong>. In it you will be able to see the structure that we need in the URLs, the parameters and the data that we can obtain from confluence such as the HTML content of a page, the tree menu, etc ...<\/p>\n\n\n\n<p class=\" translation-block\">The Confluence <strong>REST API<\/strong> is protected by the same restrictions that are provided through the standard Confluence web interface. This means that if we don't log in, you are accessing Confluence anonymously. Also, if we are logged in and you don't have permission to see something in Confluence, you won't be able to see it using the Confluence REST API either.<\/p>\n\n\n\n<p class=\" translation-block\">The confluence authentication mode is based is <a rel=\"noreferrer noopener\" href=\"https:\/\/en.wikipedia.org\/wiki\/Basic_access_authentication\" target=\"_self\"><strong>basic authentication <\/strong><\/a>. This method sends a username and password in the <strong>headers<\/strong> of the request to connect.<\/p>\n\n\n\n<p class=\" translation-block\">Let's see an example. Imagine that your username is <em>user_confluence<\/em> and your password <em>!con_pass_957<\/em>:<\/p>\n\n\n\n<p class=\" translation-block\">1- Create a string with the username and password: <em>user_confluence<\/em>: <em>!con_pass_957<\/em>, Now encode the string using base64.<\/p>\n\n\n\n<p>2- To encode the string in base64 we use the function base64_encode:<\/p>\n\n\n\n<div class=\"wp-block-group\"><div class=\"wp-block-group__inner-container is-layout-flow wp-block-group-is-layout-flow\">\n<pre class=\"wp-block-preformatted\">&lt;?php<br>echo <em>base64_encode<\/em>(\"user_confluence:!con_pass_957\");<br>?&gt;<\/pre>\n\n\n\n<div class=\"wp-block-group\"><div class=\"wp-block-group__inner-container is-layout-flow wp-block-group-is-layout-flow\">\n<div class=\"wp-block-group\"><div class=\"wp-block-group__inner-container is-layout-flow wp-block-group-is-layout-flow\">\n<div class=\"wp-block-group\"><div class=\"wp-block-group__inner-container is-layout-flow wp-block-group-is-layout-flow\">\n<p>The result of this string will be this: dXNlcl9jb25mbHVlbmNlOiFjb25fcGFzc185NTc=<\/p>\n<\/div><\/div>\n<\/div><\/div>\n<\/div><\/div>\n\n\n\n<p>3- Now we add this string to the request headers:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">curl -D- \\\n   -X POST \\\n   -H \"Authorization: Basic dXNlcl9jb25mbHVlbmNlOiFjb25fcGFzc185NTc\" \\\n   -H \"Content-Type: application\/json\" \\\n   \"https:\/\/confluenc.domain\/rest\/api\/content\/123?expand=body.view\"<\/pre>\n<\/div><\/div>\n\n\n\n<p class=\" translation-block\">This request will return, in <strong>JSON format<\/strong>, the HTML content of the page with ID 123.<\/p>\n\n\n\n<p class=\" translation-block\">We can do a connection test using the free program <strong><a href=\"https:\/\/install.advancedrestclient.com\/install\" target=\"_self\" rel=\"noreferrer noopener\">Advanced REST client<\/a><\/strong>:<\/p>\n\n\n\n<div class=\"wp-block-image is-style-default\"><figure class=\"aligncenter size-large\"><a href=\"https:\/\/franciscotapia.com\/wp-content\/uploads\/2020\/05\/image.png\"><img fetchpriority=\"high\" decoding=\"async\" width=\"1024\" height=\"616\" src=\"https:\/\/franciscotapia.com\/wp-content\/uploads\/2020\/05\/image-1024x616.png\" alt=\"Advanced REST client\" class=\"wp-image-327\" srcset=\"https:\/\/franciscotapia.com\/wp-content\/uploads\/2020\/05\/image-1024x616.png 1024w, https:\/\/franciscotapia.com\/wp-content\/uploads\/2020\/05\/image-300x180.png 300w, https:\/\/franciscotapia.com\/wp-content\/uploads\/2020\/05\/image-768x462.png 768w, https:\/\/franciscotapia.com\/wp-content\/uploads\/2020\/05\/image.png 1359w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/a><\/figure><\/div>\n\n\n\n<p>Once we know how to connect to confluence, we are going to pass this curl command to PHP code. The following example shows how to get the HTML content of a page:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">$ch = <em>curl_init<\/em>();\n\n<em>curl_setopt<\/em>($ch, CURLOPT_RETURNTRANSFER, true);\n<em>curl_setopt<\/em>($ch, CURLOPT_HEADER, false);\n<em>curl_setopt<\/em>($ch, CURLOPT_VERBOSE, false);\n<em>curl_setopt<\/em>($ch, CURLOPT_SSL_VERIFYPEER, false);\n<em>curl_setopt<\/em>($ch, CURLOPT_COOKIEFILE, '');\n<em>curl_setopt<\/em>($ch, CURLOPT_FOLLOWLOCATION, true);\n<em>curl_setopt<\/em>($ch, CURLOPT_ENCODING, '');\n\n$header = array();\n$header[] = \"Authorization: Basic \" . <em><em>base64_encode<\/em>(\"user_confluence:!con_pass_957\")<\/em>;\n$header[] = \"Content-Type: application\/json\";\n\n$page_id = 123;\n\n<em>$url <\/em>= \"https:\/\/confluence.domain.com\/rest\/api\/content\/\" . $page_id . \"?expand=body.view\";\n\n<em>curl_setopt<\/em>($ch, CURLOPT_HTTPHEADER, $header);\n<em>curl_setopt<\/em>($ch, CURLOPT_URL, <em>$url<\/em>);\n\n$result = <em>curl_exec<\/em>( $ch );\n\nprint_r(json_decode($result, true));<\/pre>\n\n\n\n<p>As you can see, in the example, we make a call to confluence using curl and the url https:\/\/confluence.domain.com\/rest\/api\/content\/123?expand=body.view<\/p>\n\n\n\n<p class=\" translation-block\">The confluence <strong>REST API<\/strong> offers different URL structures and parameters to get the different content. For example:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li class=\" translation-block\">Get the <strong>HTML content<\/strong> of a page: https:\/\/confluence.domain.com\/rest\/api\/content\/123<strong>?expand=body.view<\/strong><\/li><li class=\" translation-block\">Get the <strong>child pages<\/strong> of a parent page: https:\/\/confluence.domain.com\/rest\/api\/content\/123\/<strong>child?expand=page<\/strong><\/li><li class=\" translation-block\">Get <strong>attachments<\/strong>: https:\/\/confluence.domain.com\/rest\/api\/content\/123\/<strong>child\/attachment <\/strong>. The attachments of a page are usually the images that are included within it.<\/li><li class=\" translation-block\">Get the <strong>tags<\/strong> of a page: https:\/\/confluence.domain.com\/rest\/api\/content\/123\/<strong>label<\/strong><\/li><\/ul>\n\n\n\n<p>In this way, we can obtain the content of all the pages, images and labels of a complete confluence space.<\/p>\n\n\n\n<p>In the HTML that is obtained from the confluence page, the url of the images points to the confluence url. Ex: https:\/\/confluence.domain.com\/download\/attachments\/123456789\/image2020-2-18_12-54-33.png?version=1&amp;modificationDate=1584111935000&amp;api=v2<\/p>\n\n\n\n<p class=\" translation-block\"><strong>Note<\/strong>: These images <strong>will not be accessible<\/strong> since you will not be connected to confluence directly. To solve this we can download all the page images and modify the url using DOM. Ex:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">\/**\n * GET CONTENT\n * Function to get the content of page in confluence\n * @param int $page_id\n * @return array\n *\/\npublic function getContent(<em>$page_id <\/em>= null)\n{\n    $response = array();\n    if(<em>$page_id<\/em>) {\n\n        $url = $confluence_url . \"\/rest\/api\/content\/\" . <em>$page_id <\/em>. \"?expand=body.view\";\n\n        $page = $this-&gt;get_result($url); \/\/Connect to confluence to get the content\n\n        if($page) {\n\n            $this-&gt;getAttachements(<em>$page_id<\/em>); \/\/Here we donwload the images of the page\n\n            \/\/Use DOM to modify the url of the images\n            $doc = new DOMDocument();\n            $doc-&gt;loadHTML(<em>mb_convert_encoding<\/em>($page['body']['view']['value'], 'HTML-ENTITIES', 'UTF-8'), LIBXML_NOWARNING);\n\n            $tags = $doc-&gt;getElementsByTagName('img');\/\/Get all img tags\n            foreach ($tags as $tag) {\n                $filename = $tag-&gt;getAttribute('data-linked-resource-default-alias'); \/\/Get file name\n                $new_src_url = $this-&gt;confluence_images_dir . <em>$page_id <\/em>. '\/' . $filename ; \/\/We add the new url\n                $tag-&gt;setAttribute('src', $new_src_url); \/\/Apply the new url\n            }\n            $response['content'] = $doc-&gt;saveHTML();\n            $response['title'] = $page['title'];\n        }\n    }\n    return $response;\n}<\/pre>\n\n\n\n<p class=\" translation-block\">Here's a complete class used as a library in the <strong>CodeIgniter<\/strong> php framework.<\/p>\n\n\n\n<p><a href=\"https:\/\/github.com\/fjfran\/php_connect_confluence\">https:\/\/github.com\/fjfran\/php_connect_confluence<\/a><\/p>","protected":false},"excerpt":{"rendered":"<p>Con una simple llamada por get usando la librer\u00eda de php CURL, podemos conectar con el gestor de documentaci\u00f3n Confluence y as\u00ed enlazar esta documentaci\u00f3n en tu p\u00e1gina web. Veamos c\u00f3mo podemos hacerlo. Lo primero que debemos hacer es leer la Confluence REST API Documentation. En ella podr\u00e9is ver la [&hellip;]<\/p>","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_themeisle_gutenberg_block_has_review":false,"footnotes":""},"categories":[1],"tags":[8,10,5,7,9,6],"class_list":["post-295","post","type-post","status-publish","format-standard","hentry","category-programacion","tag-api","tag-basic-authentication","tag-codeigniter","tag-confluence","tag-curl","tag-php"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v23.9 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>C\u00f3mo conectar tu aplicaci\u00f3n web PHP con confluence - Francisco Tapia<\/title>\n<meta name=\"description\" content=\"Con una llamada por get usando CURL, podemos conectar con el gestor de documentaci\u00f3n Confluence y as\u00ed enlazar esta documentaci\u00f3n en tu p\u00e1gina web.\" \/>\n<meta name=\"robots\" content=\"noindex, follow\" \/>\n<meta property=\"og:locale\" content=\"en_GB\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"C\u00f3mo conectar tu aplicaci\u00f3n web PHP con confluence - Francisco Tapia\" \/>\n<meta property=\"og:description\" content=\"Con una llamada por get usando CURL, podemos conectar con el gestor de documentaci\u00f3n Confluence y as\u00ed enlazar esta documentaci\u00f3n en tu p\u00e1gina web.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/franciscotapia.com\/en\/php-connection-to-confluence\/\" \/>\n<meta property=\"og:site_name\" content=\"Francisco Tapia\" \/>\n<meta property=\"article:published_time\" content=\"2020-05-22T21:06:08+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2020-11-29T11:44:08+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/franciscotapia.com\/wp-content\/uploads\/2020\/05\/image-1024x616.png\" \/>\n<meta name=\"author\" content=\"Francisco Tapia\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Francisco Tapia\" \/>\n\t<meta name=\"twitter:label2\" content=\"Estimated reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"4 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/franciscotapia.com\/en\/php-connection-to-confluence\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/franciscotapia.com\/en\/php-connection-to-confluence\/\"},\"author\":{\"name\":\"Francisco Tapia\",\"@id\":\"https:\/\/franciscotapia.com\/#\/schema\/person\/2e654d93e6acd1b06723d74eebc002b5\"},\"headline\":\"C\u00f3mo conectar tu aplicaci\u00f3n web PHP con confluence\",\"datePublished\":\"2020-05-22T21:06:08+00:00\",\"dateModified\":\"2020-11-29T11:44:08+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/franciscotapia.com\/en\/php-connection-to-confluence\/\"},\"wordCount\":581,\"publisher\":{\"@id\":\"https:\/\/franciscotapia.com\/#organization\"},\"image\":{\"@id\":\"https:\/\/franciscotapia.com\/en\/php-connection-to-confluence\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/franciscotapia.com\/wp-content\/uploads\/2020\/05\/image-1024x616.png\",\"keywords\":[\"API\",\"Basic authentication\",\"Codeigniter\",\"Confluence\",\"CURL\",\"PHP\"],\"articleSection\":[\"Programacion\"],\"inLanguage\":\"en-GB\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/franciscotapia.com\/en\/php-connection-to-confluence\/\",\"url\":\"https:\/\/franciscotapia.com\/en\/php-connection-to-confluence\/\",\"name\":\"C\u00f3mo conectar tu aplicaci\u00f3n web PHP con confluence - Francisco Tapia\",\"isPartOf\":{\"@id\":\"https:\/\/franciscotapia.com\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/franciscotapia.com\/en\/php-connection-to-confluence\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/franciscotapia.com\/en\/php-connection-to-confluence\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/franciscotapia.com\/wp-content\/uploads\/2020\/05\/image-1024x616.png\",\"datePublished\":\"2020-05-22T21:06:08+00:00\",\"dateModified\":\"2020-11-29T11:44:08+00:00\",\"description\":\"Con una llamada por get usando CURL, podemos conectar con el gestor de documentaci\u00f3n Confluence y as\u00ed enlazar esta documentaci\u00f3n en tu p\u00e1gina web.\",\"breadcrumb\":{\"@id\":\"https:\/\/franciscotapia.com\/en\/php-connection-to-confluence\/#breadcrumb\"},\"inLanguage\":\"en-GB\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/franciscotapia.com\/en\/php-connection-to-confluence\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-GB\",\"@id\":\"https:\/\/franciscotapia.com\/en\/php-connection-to-confluence\/#primaryimage\",\"url\":\"https:\/\/franciscotapia.com\/wp-content\/uploads\/2020\/05\/image-1024x616.png\",\"contentUrl\":\"https:\/\/franciscotapia.com\/wp-content\/uploads\/2020\/05\/image-1024x616.png\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/franciscotapia.com\/en\/php-connection-to-confluence\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Portada\",\"item\":\"https:\/\/franciscotapia.com\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"C\u00f3mo conectar tu aplicaci\u00f3n web PHP con confluence\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/franciscotapia.com\/#website\",\"url\":\"https:\/\/franciscotapia.com\/\",\"name\":\"Francisco Tapia\",\"description\":\"Web developer\",\"publisher\":{\"@id\":\"https:\/\/franciscotapia.com\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/franciscotapia.com\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-GB\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/franciscotapia.com\/#organization\",\"name\":\"Francisco Tapia\",\"url\":\"https:\/\/franciscotapia.com\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-GB\",\"@id\":\"https:\/\/franciscotapia.com\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/franciscotapia.com\/wp-content\/uploads\/2020\/05\/cropped-logo_fondo_blanco.png\",\"contentUrl\":\"https:\/\/franciscotapia.com\/wp-content\/uploads\/2020\/05\/cropped-logo_fondo_blanco.png\",\"width\":602,\"height\":130,\"caption\":\"Francisco Tapia\"},\"image\":{\"@id\":\"https:\/\/franciscotapia.com\/#\/schema\/logo\/image\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\/\/franciscotapia.com\/#\/schema\/person\/2e654d93e6acd1b06723d74eebc002b5\",\"name\":\"Francisco Tapia\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-GB\",\"@id\":\"https:\/\/franciscotapia.com\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/b2fd3ba61e0cf9eeedad8e08aec567eb?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/b2fd3ba61e0cf9eeedad8e08aec567eb?s=96&d=mm&r=g\",\"caption\":\"Francisco Tapia\"},\"sameAs\":[\"http:\/\/franciscotapia.com\"],\"url\":\"https:\/\/franciscotapia.com\/en\/author\/franciscotapia\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"C\u00f3mo conectar tu aplicaci\u00f3n web PHP con confluence - Francisco Tapia","description":"Con una llamada por get usando CURL, podemos conectar con el gestor de documentaci\u00f3n Confluence y as\u00ed enlazar esta documentaci\u00f3n en tu p\u00e1gina web.","robots":{"index":"noindex","follow":"follow"},"og_locale":"en_GB","og_type":"article","og_title":"C\u00f3mo conectar tu aplicaci\u00f3n web PHP con confluence - Francisco Tapia","og_description":"Con una llamada por get usando CURL, podemos conectar con el gestor de documentaci\u00f3n Confluence y as\u00ed enlazar esta documentaci\u00f3n en tu p\u00e1gina web.","og_url":"https:\/\/franciscotapia.com\/en\/php-connection-to-confluence\/","og_site_name":"Francisco Tapia","article_published_time":"2020-05-22T21:06:08+00:00","article_modified_time":"2020-11-29T11:44:08+00:00","og_image":[{"url":"https:\/\/franciscotapia.com\/wp-content\/uploads\/2020\/05\/image-1024x616.png"}],"author":"Francisco Tapia","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Francisco Tapia","Estimated reading time":"4 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/franciscotapia.com\/en\/php-connection-to-confluence\/#article","isPartOf":{"@id":"https:\/\/franciscotapia.com\/en\/php-connection-to-confluence\/"},"author":{"name":"Francisco Tapia","@id":"https:\/\/franciscotapia.com\/#\/schema\/person\/2e654d93e6acd1b06723d74eebc002b5"},"headline":"C\u00f3mo conectar tu aplicaci\u00f3n web PHP con confluence","datePublished":"2020-05-22T21:06:08+00:00","dateModified":"2020-11-29T11:44:08+00:00","mainEntityOfPage":{"@id":"https:\/\/franciscotapia.com\/en\/php-connection-to-confluence\/"},"wordCount":581,"publisher":{"@id":"https:\/\/franciscotapia.com\/#organization"},"image":{"@id":"https:\/\/franciscotapia.com\/en\/php-connection-to-confluence\/#primaryimage"},"thumbnailUrl":"https:\/\/franciscotapia.com\/wp-content\/uploads\/2020\/05\/image-1024x616.png","keywords":["API","Basic authentication","Codeigniter","Confluence","CURL","PHP"],"articleSection":["Programacion"],"inLanguage":"en-GB"},{"@type":"WebPage","@id":"https:\/\/franciscotapia.com\/en\/php-connection-to-confluence\/","url":"https:\/\/franciscotapia.com\/en\/php-connection-to-confluence\/","name":"C\u00f3mo conectar tu aplicaci\u00f3n web PHP con confluence - Francisco Tapia","isPartOf":{"@id":"https:\/\/franciscotapia.com\/#website"},"primaryImageOfPage":{"@id":"https:\/\/franciscotapia.com\/en\/php-connection-to-confluence\/#primaryimage"},"image":{"@id":"https:\/\/franciscotapia.com\/en\/php-connection-to-confluence\/#primaryimage"},"thumbnailUrl":"https:\/\/franciscotapia.com\/wp-content\/uploads\/2020\/05\/image-1024x616.png","datePublished":"2020-05-22T21:06:08+00:00","dateModified":"2020-11-29T11:44:08+00:00","description":"Con una llamada por get usando CURL, podemos conectar con el gestor de documentaci\u00f3n Confluence y as\u00ed enlazar esta documentaci\u00f3n en tu p\u00e1gina web.","breadcrumb":{"@id":"https:\/\/franciscotapia.com\/en\/php-connection-to-confluence\/#breadcrumb"},"inLanguage":"en-GB","potentialAction":[{"@type":"ReadAction","target":["https:\/\/franciscotapia.com\/en\/php-connection-to-confluence\/"]}]},{"@type":"ImageObject","inLanguage":"en-GB","@id":"https:\/\/franciscotapia.com\/en\/php-connection-to-confluence\/#primaryimage","url":"https:\/\/franciscotapia.com\/wp-content\/uploads\/2020\/05\/image-1024x616.png","contentUrl":"https:\/\/franciscotapia.com\/wp-content\/uploads\/2020\/05\/image-1024x616.png"},{"@type":"BreadcrumbList","@id":"https:\/\/franciscotapia.com\/en\/php-connection-to-confluence\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Portada","item":"https:\/\/franciscotapia.com\/"},{"@type":"ListItem","position":2,"name":"C\u00f3mo conectar tu aplicaci\u00f3n web PHP con confluence"}]},{"@type":"WebSite","@id":"https:\/\/franciscotapia.com\/#website","url":"https:\/\/franciscotapia.com\/","name":"Francisco Tapia","description":"Web developer","publisher":{"@id":"https:\/\/franciscotapia.com\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/franciscotapia.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-GB"},{"@type":"Organization","@id":"https:\/\/franciscotapia.com\/#organization","name":"Francisco Tapia","url":"https:\/\/franciscotapia.com\/","logo":{"@type":"ImageObject","inLanguage":"en-GB","@id":"https:\/\/franciscotapia.com\/#\/schema\/logo\/image\/","url":"https:\/\/franciscotapia.com\/wp-content\/uploads\/2020\/05\/cropped-logo_fondo_blanco.png","contentUrl":"https:\/\/franciscotapia.com\/wp-content\/uploads\/2020\/05\/cropped-logo_fondo_blanco.png","width":602,"height":130,"caption":"Francisco Tapia"},"image":{"@id":"https:\/\/franciscotapia.com\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/franciscotapia.com\/#\/schema\/person\/2e654d93e6acd1b06723d74eebc002b5","name":"Francisco Tapia","image":{"@type":"ImageObject","inLanguage":"en-GB","@id":"https:\/\/franciscotapia.com\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/b2fd3ba61e0cf9eeedad8e08aec567eb?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/b2fd3ba61e0cf9eeedad8e08aec567eb?s=96&d=mm&r=g","caption":"Francisco Tapia"},"sameAs":["http:\/\/franciscotapia.com"],"url":"https:\/\/franciscotapia.com\/en\/author\/franciscotapia\/"}]}},"_links":{"self":[{"href":"https:\/\/franciscotapia.com\/en\/wp-json\/wp\/v2\/posts\/295","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/franciscotapia.com\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/franciscotapia.com\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/franciscotapia.com\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/franciscotapia.com\/en\/wp-json\/wp\/v2\/comments?post=295"}],"version-history":[{"count":41,"href":"https:\/\/franciscotapia.com\/en\/wp-json\/wp\/v2\/posts\/295\/revisions"}],"predecessor-version":[{"id":376,"href":"https:\/\/franciscotapia.com\/en\/wp-json\/wp\/v2\/posts\/295\/revisions\/376"}],"wp:attachment":[{"href":"https:\/\/franciscotapia.com\/en\/wp-json\/wp\/v2\/media?parent=295"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/franciscotapia.com\/en\/wp-json\/wp\/v2\/categories?post=295"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/franciscotapia.com\/en\/wp-json\/wp\/v2\/tags?post=295"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}