WRTS op website

Status
Niet open voor verdere reacties.

maxdaniel98

Gebruiker
Lid geworden
17 dec 2010
Berichten
133
Hoe kan ik een lijst met mijn WRTS woordenlijsten op mijn website krijgen (liefst met php)?
Voorbeeld:
Lijsten van maxdaniel98:
- Frans GP
- Engels hoofdstuk 10
...
 
Laatst bewerkt:
bedoel je de woorden op je website of dat je ze op je website kunt oefenen, net zoals op WRTS?
 
Nee, dat je de lijsten op mijn website ziet, en als je ze aanklikt dat je ze dan download.

Iets als dit, maar dan op mijn eigen site
 
Hulp

Ja dat kan,

ik ben er zelf ook mee bezig, maar nog niet alles werkt.
Om met de API te communiceren heb je cURL nodig.
Dit is bijvoorbeeld om de lijstnamen in XML-vorm in de variabele $resp ( waarde weergeven is <?php echo($resp);?> ) te krijgen:
PHP:
$curl = curl_init();
curl_setopt($curl,CURLOPT_URL,'https://www.wrts.nl/api/lists/'); #Als hier geen https:// staat, zijn de twee volgende regels overbodig
curl_setopt($curl,CURLOPT_SSL_VERIFYPEER,FALSE);
curl_setopt($curl,CURLOPT_SSL_VERIFYHOST,FALSE);
curl_setopt($curl,CURLOPT_HTTPHEADER,'Content-Type: text/xml'); #Verplicht bij POST maar overbodig bij GET
curl_setopt($curl,CURLOPT_USERPWD,"email:password"); # Alleen nodig als je moet inloggen om de lijst te zien. Als je het niet doet is de waarde van $resp = Login Required.
curl_setopt($curl,CURLOPT_RETURNTRANSFER,TRUE);
$resp = curl_exec($curl);
echo $resp;
curl_close();

Ik hoop dat je er wat aan hebt.
Ik ben er ook net een paar dagen mee bezig.

MySql
 
Dank je wel voor je reactie, maar het is een oude thread, en ben er momenteel niet meer mee bezig. Een
Lock-Lock-icon.png
mag er wel op.
 
Oke,

Ik kan dat volgens mij niet doen,
maar wat bedoel je met er niet meer me bezig zijn?
- Het is af of ik vond het niet meer nodig om eraan te werken.
Als het het eerste is kan je me helpen...

MySQL
 
Ik ben er op een gegeven moment mee gestopt, net zoals wat meer projecten ;)
Maar, ondertussen is mijn kennis van PHP een stuk groter dan in 2011, dus het programmeren is op zich niet veel werk meer.

Ik kan je nog wel wat tips geven;
Je bent goed op weg met de cURL, na het ophalen met cURL moet je even kijken naar SimpleXML voor het verwerken van de gegevens. Als laatste kun je je gebruikers de lijst laten overnemen met de link http://www.wrts.nl/lijst/overnemen/$[ID]

Ik hoop dat je hier wat aan hebt!
 
Het ophalen is me al (eer)gisteren gelukt.
Weet je ook hoe je moet POSTen?

MySQL
 
Trouwens,

Hier had ik al een begin:
PHP:
$curl = curl_init();

curl_setopt($curl,CURLOPT_URL,'https://www.wrts.nl/api/lists/');
curl_setopt($curl,CURLOPT_SSL_VERIFYPEER,FALSE);
curl_setopt($curl,CURLOPT_SSL_VERIFYHOST,FALSE);
curl_setopt($curl,CURLOPT_HTTPHEADER,'Content-Type: text/xml');
curl_setopt($curl,CURLOPT_USERPWD,"email:password");
curl_setopt($curl,CURLOPT_RETURNTRANSFER,TRUE);
curl_setopt($curl,CURLOPT_POST,TRUE);
curl_setopt($curl,CURLOPT_POSTFIELDS,"<list-index><group><list><titel>".$_POST["name"]."</titel><lang-a>Lang1</lang-a><lang-b>Lang2</lang-b></list></group></list-index>");

$resp = curl_exec($curl);

echo $resp.$_POST["name"];

curl_close();

MySQL
 
Volgens mij klopt je code wel aardig, alleen je string niet. WRTS zelf geeft dit aan:
PHP:
<list>
  <title>Code génial 1</title>
  <lang-a>Frans</lang-a>
  <lang-b>Nederlands</lang-b>
  
  <!-- als de lijst moet worden gedeeld -->
  <shared>true</shared>
  
  <!-- als de lijst niet moet worden gedeeld -->
  <shared>false</shared>
  
  <keywords>
    <keyword>Frans</keyword>
    <keyword>Klas 2</keyword>
    ...
  </keywords>
  
  <words>
    <word>
      <word-a>bonjour</word-a>
      <word-b>hallo</word-b>
    </word>
    ...
  </words>
</list>

Dus ik zou gaan voor

PHP:
<?php
$lijstnaam=$_POST['listname'];
$poststring=<<<EOF
<list>
  <title>$lijstnaam</title>
  <lang-a>Frans</lang-a>
  <lang-b>Nederlands</lang-b>
  
  <!-- als de lijst moet worden gedeeld -->
  <shared>true</shared>
 
  
  <words>
    <word>
      <word-a>bonjour</word-a>
      <word-b>hallo</word-b>
    </word>
    
  </words>
</list>
EOF;
?>
 
Laatst bewerkt:
Ik heb het geprobeerd maar net als daarvoor zegt hij telkens:
Code:
<error status="500">The list could not be saved: </error>

Het is dus een 500 Error.

Hoe los ik die op?

MySQL
 
Kan ook zijn dat een van je headers fout is.
PHP:
curl_setopt($ch, CURLOPT_HTTPHEADER,     array('Content-Type: text/xml'));

Probeer dat is.
 
Bedankt.

Nu werkt hij.
Maar waarom het nou per se een array moet zijn.

MySQL
 
Oke,

ik stuur hier wel een bericht OF een privebericht naar jouw als het systeem af is.

MySQL
 
Ik kon het toch niet laten, en zet even snel een classje in elkaar voor WRTS. Laat je ook wel weten wanneer het af is.
 
De class heb ik eventjes in elkaar gejast (niet slecht voor anderhalfuur). Linkje naar demo, script komt zo...
 
PHP WRTS class

Zo, klaar. Je kunt alle lijsten verkrijgen, zoeken in de titels van lijsten, lijsten toevoegen, lijsten verkrijgen en lijsten verwijderen. Bewerken zit helaas niet in het pakket, daar had ik geen zin in ;)
--->Bekijk bijlage wrts.zip <---
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan