<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: Web Scripts - Alfresco et PHP in Alfresco Archive</title>
    <link>https://connect.hyland.com/t5/alfresco-archive/web-scripts-alfresco-et-php/m-p/197329#M150459</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Bonjour,&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;En php, il vous suffit de faire des appels HTTP aux différents webscripts que vous voulez appeler (curl, HttpRequest, …) et d’interpréter le retour suivant le format que vous avez demandé (JSON, HTML, …).&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Suivant votre application, vous pouvez très bien réaliser vos appels via du JavaScript également (appels AJAX).&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;La problématique principale étant l'authentification.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; - Soit vous avez un couple login/password, il faudra dans un premier temps récupérer un ticket d'authentification Alfresco puis passer ce fameux ticket dans chacun de vos appels aux webscripts (paramètre ?alf_ticket={TICKET})&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; - Soit vous utilisez le compte "guest", vous exécuterez donc vos webscripts en tant qu'invité, pour cela, il faut passer le paramètre ?guest=true&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Il existe des webscripts dédiés à la gestion de l'authentification : &lt;/SPAN&gt;&lt;A href="http://localhost:8080/alfresco/s/index/family/Authentication" rel="nofollow noopener noreferrer"&gt;http://localhost:8080/alfresco/s/index/family/Authentication&lt;/A&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Exemple d'appels :&lt;/SPAN&gt;&lt;BR /&gt;&lt;A _jive_internal="true" href="https://community.alfresco.com/serveur:port/alfresco/s/api/login?u=admin&amp;amp;pw=admin" rel="nofollow noopener noreferrer"&gt;http://serveur&lt;img id="smileytongue" class="emoticon emoticon-smileytongue" src="https://connect.hyland.com/i/smilies/16x16_smiley-tongue.png" alt="Smiley Tongue" title="Smiley Tongue" /&gt;ort/alfresco/s/api/login?u=admin&amp;amp;pw=admin&lt;/A&gt;&lt;SPAN&gt; =&amp;gt; TICKET_ff94e397395b3d2646b0bb1aa9c868e01ec0bfd3&lt;/SPAN&gt;&lt;BR /&gt;&lt;A _jive_internal="true" href="https://community.alfresco.com/serveur:port/alfresco/s/mon/url/de/webscript?alf_ticket=TICKET_ff94e397395b3d2646b0bb1aa9c868e01ec0bfd3" rel="nofollow noopener noreferrer"&gt;http://serveur&lt;img id="smileytongue" class="emoticon emoticon-smileytongue" src="https://connect.hyland.com/i/smilies/16x16_smiley-tongue.png" alt="Smiley Tongue" title="Smiley Tongue" /&gt;ort/alfresco/s/mon/url/de/webscript?alf_ticket=TICKET_ff94e397395b3d2646b0bb1aa9c868e01ec0bfd3&lt;/A&gt;&lt;BR /&gt;&lt;A _jive_internal="true" href="https://community.alfresco.com/serveur:port/alfresco/s/mon/url/de/webscript?guest=true" rel="nofollow noopener noreferrer"&gt;http://serveur&lt;img id="smileytongue" class="emoticon emoticon-smileytongue" src="https://connect.hyland.com/i/smilies/16x16_smiley-tongue.png" alt="Smiley Tongue" title="Smiley Tongue" /&gt;ort/alfresco/s/mon/url/de/webscript?guest=true&lt;/A&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Ca ne devrait pas être le cas, mais si vous envisagez d’interroger des webscript situés dans la webapp Share, les dernières montures d'Alfresco ont renforcées leur sécurité concernant les attaques CSRF, article à lire : &lt;/SPAN&gt;&lt;A href="http://blogs.alfresco.com/wp/ewinlof/2013/03/11/introducing-the-new-csrf-filter-in-alfresco-share/" rel="nofollow noopener noreferrer"&gt;http://blogs.alfresco.com/wp/ewinlof/2013/03/11/introducing-the-new-csrf-filter-in-alfresco-share/&lt;/A&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Cordialement.&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Wed, 13 Nov 2013 14:19:31 GMT</pubDate>
    <dc:creator>bertrandf</dc:creator>
    <dc:date>2013-11-13T14:19:31Z</dc:date>
    <item>
      <title>Web Scripts - Alfresco et PHP</title>
      <link>https://connect.hyland.com/t5/alfresco-archive/web-scripts-alfresco-et-php/m-p/197328#M150458</link>
      <description>Bonjour,Je cherche à interagir avec les services alfresco via le RESTful API&amp;nbsp; depuis une application php.La création&amp;nbsp; de mon service à travers les web ssripts alfresco ( description du document, contrôleur js et vue freemarker) est opérationnel.Est ce que quelqu'un a un example d'appel de service al</description>
      <pubDate>Sat, 09 Nov 2013 09:49:07 GMT</pubDate>
      <guid>https://connect.hyland.com/t5/alfresco-archive/web-scripts-alfresco-et-php/m-p/197328#M150458</guid>
      <dc:creator>akha</dc:creator>
      <dc:date>2013-11-09T09:49:07Z</dc:date>
    </item>
    <item>
      <title>Re: Web Scripts - Alfresco et PHP</title>
      <link>https://connect.hyland.com/t5/alfresco-archive/web-scripts-alfresco-et-php/m-p/197329#M150459</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Bonjour,&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;En php, il vous suffit de faire des appels HTTP aux différents webscripts que vous voulez appeler (curl, HttpRequest, …) et d’interpréter le retour suivant le format que vous avez demandé (JSON, HTML, …).&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Suivant votre application, vous pouvez très bien réaliser vos appels via du JavaScript également (appels AJAX).&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;La problématique principale étant l'authentification.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; - Soit vous avez un couple login/password, il faudra dans un premier temps récupérer un ticket d'authentification Alfresco puis passer ce fameux ticket dans chacun de vos appels aux webscripts (paramètre ?alf_ticket={TICKET})&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; - Soit vous utilisez le compte "guest", vous exécuterez donc vos webscripts en tant qu'invité, pour cela, il faut passer le paramètre ?guest=true&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Il existe des webscripts dédiés à la gestion de l'authentification : &lt;/SPAN&gt;&lt;A href="http://localhost:8080/alfresco/s/index/family/Authentication" rel="nofollow noopener noreferrer"&gt;http://localhost:8080/alfresco/s/index/family/Authentication&lt;/A&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Exemple d'appels :&lt;/SPAN&gt;&lt;BR /&gt;&lt;A _jive_internal="true" href="https://community.alfresco.com/serveur:port/alfresco/s/api/login?u=admin&amp;amp;pw=admin" rel="nofollow noopener noreferrer"&gt;http://serveur&lt;img id="smileytongue" class="emoticon emoticon-smileytongue" src="https://connect.hyland.com/i/smilies/16x16_smiley-tongue.png" alt="Smiley Tongue" title="Smiley Tongue" /&gt;ort/alfresco/s/api/login?u=admin&amp;amp;pw=admin&lt;/A&gt;&lt;SPAN&gt; =&amp;gt; TICKET_ff94e397395b3d2646b0bb1aa9c868e01ec0bfd3&lt;/SPAN&gt;&lt;BR /&gt;&lt;A _jive_internal="true" href="https://community.alfresco.com/serveur:port/alfresco/s/mon/url/de/webscript?alf_ticket=TICKET_ff94e397395b3d2646b0bb1aa9c868e01ec0bfd3" rel="nofollow noopener noreferrer"&gt;http://serveur&lt;img id="smileytongue" class="emoticon emoticon-smileytongue" src="https://connect.hyland.com/i/smilies/16x16_smiley-tongue.png" alt="Smiley Tongue" title="Smiley Tongue" /&gt;ort/alfresco/s/mon/url/de/webscript?alf_ticket=TICKET_ff94e397395b3d2646b0bb1aa9c868e01ec0bfd3&lt;/A&gt;&lt;BR /&gt;&lt;A _jive_internal="true" href="https://community.alfresco.com/serveur:port/alfresco/s/mon/url/de/webscript?guest=true" rel="nofollow noopener noreferrer"&gt;http://serveur&lt;img id="smileytongue" class="emoticon emoticon-smileytongue" src="https://connect.hyland.com/i/smilies/16x16_smiley-tongue.png" alt="Smiley Tongue" title="Smiley Tongue" /&gt;ort/alfresco/s/mon/url/de/webscript?guest=true&lt;/A&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Ca ne devrait pas être le cas, mais si vous envisagez d’interroger des webscript situés dans la webapp Share, les dernières montures d'Alfresco ont renforcées leur sécurité concernant les attaques CSRF, article à lire : &lt;/SPAN&gt;&lt;A href="http://blogs.alfresco.com/wp/ewinlof/2013/03/11/introducing-the-new-csrf-filter-in-alfresco-share/" rel="nofollow noopener noreferrer"&gt;http://blogs.alfresco.com/wp/ewinlof/2013/03/11/introducing-the-new-csrf-filter-in-alfresco-share/&lt;/A&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Cordialement.&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 13 Nov 2013 14:19:31 GMT</pubDate>
      <guid>https://connect.hyland.com/t5/alfresco-archive/web-scripts-alfresco-et-php/m-p/197329#M150459</guid>
      <dc:creator>bertrandf</dc:creator>
      <dc:date>2013-11-13T14:19:31Z</dc:date>
    </item>
    <item>
      <title>Re: Web Scripts - Alfresco et PHP</title>
      <link>https://connect.hyland.com/t5/alfresco-archive/web-scripts-alfresco-et-php/m-p/197330#M150460</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Ce genre de choses devraient pouvoir vous aider :&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;PRE class="language-none line-numbers"&gt;&lt;CODE&gt;&lt;BR /&gt;function get_ticket_curl_post($u, $pw) {&lt;BR /&gt;&amp;nbsp; $ticket = ''; //init&lt;BR /&gt;&amp;nbsp; $credentials = array('username' =&amp;gt; $u, 'password' =&amp;gt; $pw);&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp; $ch = curl_init(URL_SERVER.'s/api/login');&lt;BR /&gt;&amp;nbsp; curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($credentials));&lt;BR /&gt;&amp;nbsp; curl_setopt($ch, CURLOPT_TIMEOUT, 25);&lt;BR /&gt;&amp;nbsp; curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);&lt;BR /&gt;&amp;nbsp; curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: application/html'));&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp; $postResult = curl_exec($ch);&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp; // Check if any error occured&lt;BR /&gt;&amp;nbsp; if(curl_errno($ch)) {&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; $ticket = ''; //no ticket.&lt;BR /&gt;&amp;nbsp; }&lt;BR /&gt;&amp;nbsp; else {&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; $ticket = json_decode($postResult)-&amp;gt;data-&amp;gt;ticket;&amp;nbsp; //set ticket to return&lt;BR /&gt;&amp;nbsp; }&lt;BR /&gt;&amp;nbsp; curl_close($ch);&lt;BR /&gt;&amp;nbsp; &lt;BR /&gt;&amp;nbsp; // die($ticket);&lt;BR /&gt;&amp;nbsp; return $ticket;&lt;BR /&gt;}&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;/* Execution des methodes GET */&lt;BR /&gt;function requestGet($lien, $val, $ticket=null) {&lt;BR /&gt;&amp;nbsp; $url = URL_SERVER.$lien;&lt;BR /&gt;&amp;nbsp; $request = new HttpRequest($url, HTTP_METH_GET);&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp; if ($ticket != null) {&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; $request-&amp;gt;addHeaders(array('Authorization' =&amp;gt; 'Basic '.base64_encode($ticket)));&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; //$request-&amp;gt;addQueryData(array('alf_ticket' =&amp;gt; $ticket));&lt;BR /&gt;&amp;nbsp; }&lt;BR /&gt;&amp;nbsp; if ($val != null) {&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; $request-&amp;gt;addQueryData($val);&lt;BR /&gt;&amp;nbsp; }&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp; try {&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; $response = $request-&amp;gt;send();&lt;BR /&gt;&amp;nbsp; } catch (HttpException $ex) {&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; echo $ex;&lt;BR /&gt;&amp;nbsp; }&lt;BR /&gt;&amp;nbsp; return $response;&lt;BR /&gt;}&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;function requestPost($lien, $val, $ticket=null) {&lt;BR /&gt;&amp;nbsp; $url = URL_SERVER.$lien;&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp; $request = new HttpRequest($url, HTTP_METH_POST);&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp; if ($ticket!=null)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; $request-&amp;gt;addHeaders(array('Authorization' =&amp;gt; 'Basic '.base64_encode($ticket)));&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp; if ($val!=null)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; $request-&amp;gt;addPostFields($val);&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp; try {&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; $response = $request-&amp;gt;send();&lt;BR /&gt;&amp;nbsp; } catch (HttpException $ex) {&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; echo $ex;&lt;BR /&gt;&amp;nbsp; }&lt;BR /&gt;&amp;nbsp; return $response;&lt;BR /&gt;}&lt;BR /&gt;&lt;SPAN class="line-numbers-rows"&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/CODE&gt;&lt;/PRE&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Je ne garantie pas que ces fonctions soient utilisables en l'état.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Cordialement.&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 13 Nov 2013 14:30:25 GMT</pubDate>
      <guid>https://connect.hyland.com/t5/alfresco-archive/web-scripts-alfresco-et-php/m-p/197330#M150460</guid>
      <dc:creator>bertrandf</dc:creator>
      <dc:date>2013-11-13T14:30:25Z</dc:date>
    </item>
    <item>
      <title>Re: Web Scripts - Alfresco et PHP</title>
      <link>https://connect.hyland.com/t5/alfresco-archive/web-scripts-alfresco-et-php/m-p/197331#M150461</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Bonjour BertrandF,&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Merci pour vos réponses,vous avez bien compris ma problématique, &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;je vais tester les scripts php sur un serveur web classique en intégrant le alf_ticket=xxxxxxxxxxxxxxxxxxx à l'url de mon service.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Bien Cordialement.&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 14 Nov 2013 19:35:37 GMT</pubDate>
      <guid>https://connect.hyland.com/t5/alfresco-archive/web-scripts-alfresco-et-php/m-p/197331#M150461</guid>
      <dc:creator>akha</dc:creator>
      <dc:date>2013-11-14T19:35:37Z</dc:date>
    </item>
  </channel>
</rss>

