<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:x="urn:schemas-microsoft-com:office:excel" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
<meta name="Generator" content="Microsoft Word 15 (filtered medium)">
<style><!--
/* Font Definitions */
@font-face
        {font-family:"Cambria Math";
        panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0cm;
        margin-bottom:.0001pt;
        font-size:11.0pt;
        font-family:"Calibri",sans-serif;
        mso-fareast-language:EN-US;}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:#0563C1;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:#954F72;
        text-decoration:underline;}
p.msonormal0, li.msonormal0, div.msonormal0
        {mso-style-name:msonormal;
        mso-margin-top-alt:auto;
        margin-right:0cm;
        mso-margin-bottom-alt:auto;
        margin-left:0cm;
        font-size:12.0pt;
        font-family:"Times New Roman",serif;}
span.EmailStyle18
        {mso-style-type:personal;
        font-family:"Calibri",sans-serif;
        color:windowtext;}
span.EmailStyle19
        {mso-style-type:personal;
        font-family:"Calibri",sans-serif;
        color:windowtext;}
span.EmailStyle20
        {mso-style-type:personal-reply;
        font-family:"Calibri",sans-serif;
        color:#1F497D;}
.MsoChpDefault
        {mso-style-type:export-only;
        font-size:10.0pt;}
@page WordSection1
        {size:612.0pt 792.0pt;
        margin:72.0pt 72.0pt 72.0pt 72.0pt;}
div.WordSection1
        {page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]-->
</head>
<body lang="EN-GB" link="#0563C1" vlink="#954F72">
<div class="WordSection1">
<p class="MsoNormal"><span style="color:#1F497D">Hi Andrew,<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D">I spent ages struggling with easyDeposit, then got it working in a day with CURL.&nbsp;
<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D"><o:p>&nbsp;</o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D">I have a separate staging system that brings together the metadata and the documents then generates ep-xml with embedded base64 files.&nbsp; Then this bit of PHP does the CURL and pushes it at the SWORD/CRUD api.&nbsp;
 This is to create a new eprint.&nbsp; I never managed to get updates working, other than by downloading the whole thing in XML, manipulating the XML, and pushing it back again &#8211; and that only works on the eprint record, I could never work out how to do anything
 with the file and document metadata.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D">Andy <o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D"><o:p>&nbsp;</o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D"><o:p>&nbsp;</o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D">==========CURL FRAGMENT====================================<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D">$oaPub_ID=$_REQUEST['oaPub_ID'];&nbsp; # Call this script with the number of the record to upload<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D">$ch = curl_init();<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D">$username='XXXXXXXXXX';$password='YYYYYYYYYYYYY';&nbsp;
<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D">curl_setopt($ch, CURLOPT_USERPWD, $username . &quot;:&quot; . $password);<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D">curl_setopt($ch, CURLOPT_URL, &quot;<a href="http://researchonline.lshtm.ac.uk/id/contents">http://researchonline.lshtm.ac.uk/id/contents</a>&quot;);<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D">curl_setopt($ch, CURLOPT_HEADER, 1);<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D"><o:p>&nbsp;</o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D"><o:p>&nbsp;</o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D"><o:p>&nbsp;</o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D">$pkgheader=Array('X-Packaging: <a href="http://eprints.org/ep2/data/2.0">
http://eprints.org/ep2/data/2.0</a>',<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 'Content-Type: text/xml',<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;'Metadata-Relevant: true',<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 'X-Verbose: true' ,<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 'In-Progress: false'); # TRUE =&gt; user inbox;&nbsp; FALSE =&gt; review&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D">curl_setopt($ch,CURLOPT_HTTPHEADER,$pkgheader);<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D"><o:p>&nbsp;</o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D"><o:p>&nbsp;</o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D">// test from static file<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D">// $file_in = &quot;$DOCROOT/publications/eprint5.xml&quot;;&nbsp; test file
<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D">// $data=file_get_contents($file_in)
<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D"><o:p>&nbsp;</o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D"><o:p>&nbsp;</o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D">// live XML fetch&nbsp; <o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D">$html_in=&quot;<a href="http://pubdb.lshtm.ac.uk/publications/OAmgr/OAmgr_upload/eprints_xml.php?filter=oaPub_ID&amp;value=$oaPub_ID">http://pubdb.lshtm.ac.uk/publications/OAmgr/OAmgr_upload/eprints_xml.php?filter=oaPub_ID&amp;value=$oaPub_ID</a>&quot;;&nbsp;
 #fetches eprints XML from the staging system<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D">$data=file_get_contents($html_in);<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D"><o:p>&nbsp;</o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D"><o:p>&nbsp;</o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D">curl_setopt($ch, CURLOPT_POST,1);<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D">curl_setopt($ch, CURLOPT_POSTFIELDS, $data);<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D"><o:p>&nbsp;</o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D">curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D"><o:p>&nbsp;</o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D">($result=curl_exec($ch) )|| die( &quot;curl_exec failed: &quot;. curl_error($ch));<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D"><o:p>&nbsp;</o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D"><o:p>&nbsp;</o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D">echo &quot;&lt;pre&gt;&quot;;<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D">echo&nbsp; $result;<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D">echo &quot;&lt;/pre&gt;&quot;;<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D">$links=array();<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D">preg_match('/&lt;link rel=&quot;edit&quot; href=\&quot;(.*?)\&quot;/',$result,$links);<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D">echo &quot;&lt;a href='&quot;.$links[1] .&quot;'&gt;Result&lt;/a&gt;&quot;;<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D"><o:p>&nbsp;</o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D">$matches=array();<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D">if(preg_match('/\/id\/eprint\/([0-9]*)/',$result,$matches)){<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D">&nbsp;&nbsp;&nbsp; $ID=$matches[1];<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D">&nbsp;&nbsp;&nbsp; print &quot;\n\nID=$ID\n&quot;;<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D">&nbsp;&nbsp;&nbsp; echo&nbsp; $result;<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D">}else{curl_close($ch); die( &quot;\n\nNo ID found in eprints response: Deposit failed&quot;);}<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D">// close cURL resource, and free up system resources<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D">curl_close($ch);<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D"><o:p>&nbsp;</o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D"><o:p>&nbsp;</o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D">// very crude and verbose reporting, followed by some more stuff the passes the eprint ID back to the staging DB<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D"><o:p>&nbsp;</o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D"><o:p>&nbsp;</o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D"><o:p>&nbsp;</o:p></span></p>
<div>
<div style="border:none;border-top:solid #E1E1E1 1.0pt;padding:3.0pt 0cm 0cm 0cm">
<p class="MsoNormal"><b><span lang="EN-US" style="mso-fareast-language:EN-GB">From:</span></b><span lang="EN-US" style="mso-fareast-language:EN-GB"> eprints-tech-bounces@ecs.soton.ac.uk [mailto:eprints-tech-bounces@ecs.soton.ac.uk]
<b>On Behalf Of </b>Andrew Beeken<br>
<b>Sent:</b> 20 June 2017 15:55<br>
<b>To:</b> eprints-tech@ecs.soton.ac.uk<br>
<b>Subject:</b> Re: [EP-tech] Sword 2.0 access control<o:p></o:p></span></p>
</div>
</div>
<p class="MsoNormal"><o:p>&nbsp;</o:p></p>
<p class="MsoNormal">I tinkered with SWORD a while back but don&#8217;t recall making much headway over being able to create a blank record. I think anything more than that was a bit like pulling teeth.<o:p></o:p></p>
<p class="MsoNormal"><o:p>&nbsp;</o:p></p>
<div>
<div style="border:none;border-top:solid #E1E1E1 1.0pt;padding:3.0pt 0cm 0cm 0cm">
<p class="MsoNormal"><b><span lang="EN-US" style="mso-fareast-language:EN-GB">From:</span></b><span lang="EN-US" style="mso-fareast-language:EN-GB">
</span><a href="mailto:eprints-tech-bounces@ecs.soton.ac.uk"><span lang="EN-US" style="mso-fareast-language:EN-GB">eprints-tech-bounces@ecs.soton.ac.uk</span></a><span lang="EN-US" style="mso-fareast-language:EN-GB"> [</span><a href="mailto:eprints-tech-bounces@ecs.soton.ac.uk"><span lang="EN-US" style="mso-fareast-language:EN-GB">mailto:eprints-tech-bounces@ecs.soton.ac.uk</span></a><span lang="EN-US" style="mso-fareast-language:EN-GB">]
<b>On Behalf Of </b>Alan.Stiles<br>
<b>Sent:</b> 20 June 2017 15:50<br>
<b>To:</b> </span><a href="mailto:eprints-tech@ecs.soton.ac.uk"><span lang="EN-US" style="mso-fareast-language:EN-GB">eprints-tech@ecs.soton.ac.uk</span></a><span lang="EN-US" style="mso-fareast-language:EN-GB"><br>
<b>Subject:</b> [EP-tech] Sword 2.0 access control<o:p></o:p></span></p>
</div>
</div>
<p class="MsoNormal"><o:p>&nbsp;</o:p></p>
<p class="MsoNormal">Hi all,<o:p></o:p></p>
<p class="MsoNormal">Does anyone have a successful SWORD implementation?&nbsp; I&#8217;m trying to access /sword-app/servicedocument &nbsp;and /id/contents via the browser, whilst logged in to the repository and I just get bounced off to a not-authorised page.<o:p></o:p></p>
<p class="MsoNormal">Not sure if either of those should be legible to me and it&#8217;s our access control blocking me, or if I&#8217;m not supposed to be able to get to either via a browser and should be doing something via CURL.&nbsp; I&#8217;ve seen the SWORD and CRUD pages on
 the Wiki but I&#8217;m not making any headway at the moment.<o:p></o:p></p>
<p class="MsoNormal"><o:p>&nbsp;</o:p></p>
<p class="MsoNormal">Cheers,<o:p></o:p></p>
<p class="MsoNormal">Alan<span style="color:#44546A;position:relative;top:-2.0pt;mso-text-raise:2.0pt;mso-fareast-language:EN-GB">
<o:p></o:p></span></p>
<p class="MsoNormal"><o:p>&nbsp;</o:p></p>
<p class="MsoNormal"><span style="font-size:12.0pt;font-family:&quot;Times New Roman&quot;,serif;mso-fareast-language:EN-GB">-- The Open University is incorporated by Royal Charter (RC 000391), an exempt charity in England &amp; Wales and a charity registered in Scotland
 (SC 038302). The Open University is authorised and regulated by the Financial Conduct Authority.
<o:p></o:p></span></p>
<div>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:&quot;Times New Roman&quot;,serif;mso-fareast-language:EN-GB"><br>
<b>The University of Lincoln, located in the heart of the city of Lincoln, has established an international reputation based on high student satisfaction, excellent graduate employment and world-class research.</b></span><span style="font-size:12.0pt;font-family:&quot;Times New Roman&quot;,serif;mso-fareast-language:EN-GB"><o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:7.5pt;font-family:&quot;Arial&quot;,sans-serif;mso-fareast-language:EN-GB"><br>
The information in this e-mail and any attachments may be confidential. If you have received this email in error please notify the sender immediately and remove it from your system. Do not disclose the contents to another person or take copies.<br>
<br>
Email is not secure and may contain viruses. The University of Lincoln makes every effort to ensure email is sent without viruses, but cannot guarantee this and recommends recipients take appropriate precautions.<br>
<br>
The University may monitor email traffic data and content in accordance with its policies and English law. Further information can be found at:
</span><a href="http://www.lincoln.ac.uk/legal"><span style="font-size:7.5pt;font-family:&quot;Arial&quot;,sans-serif;mso-fareast-language:EN-GB">http://www.lincoln.ac.uk/legal</span></a><span style="font-size:7.5pt;font-family:&quot;Arial&quot;,sans-serif;mso-fareast-language:EN-GB">.</span><span style="font-size:12.0pt;font-family:&quot;Times New Roman&quot;,serif;mso-fareast-language:EN-GB"><o:p></o:p></span></p>
</div>
</div>
</body>
</html>