Opvragen van Token Request voor Exact Online boekhoudpakket

Pagina: 1
Acties:

Onderwerpen

Vraag


Acties:
  • 0 Henk 'm!

Anoniem: 790699

Topicstarter
Hallo Allemaal,

Ik ben bezig met het opzetten van een connectie tussen mijn webwinkel en het boekhoudpakket van Exact Online. Ik wil namelijk producten die ik in Exact Online heb toegevoegd graag uitlezen in een XML document zodat ik deze vervolgens kan toevoegen als product in mijn webshop database. Dit zou er in moeten resulteren dat ik maar eenmalig mijn producten binnen Exact Online in hoef te voeren en dat deze na een klik op een knop ook zichtbaar worden binnen de webshop.

Nu is de documentatie van Exact Online vrij mager en kom ik niet echt verder. Stap 2 heb ik gerealiseerd maar snap niet goed hoe ik nu stap 3 moet aanpakken.

Ik maak gebruik van de volgende php code om naar mijn idee een token request te doen.

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
$post_data="code=".$code."&grant_type=".$grant_type.'&redirect_uri=".$redirect."&client_id=".$client_id."&client_secret=".$secret."';
$url="https://start.exactonline.nl/api/oauth2/token";

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $post_data);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: application/x-www-form-urlencoded'));
curl_setopt($ch, CURLOPT_VERBOSE, true);
$result = curl_exec($ch);
echo $result;


De volgende code resulteert in een Bad Request.

Is er iemand die mij misschien verder kan helpen?

Beste antwoord (via Anoniem: 790699 op 07-07-2016 08:37)


  • Pizzalucht
  • Registratie: Januari 2011
  • Nu online

Pizzalucht

Snotneus.

Anoniem: 790699 schreef op woensdag 06 juli 2016 @ 11:44:
@Pizzalucht

De implementatie hiervan is mij niet geheel duidelijk. Daarnaast lijken er bestanden de missen?

@DanieIG

Dit komt door even snel de code aan te passen zodat de echte waarde niet zichtbaar zouden zijn ;)


Misschien is de aanroep met het aantal parameters ook wel verkeerd?
De code maakt gebruik van een aantal libraries, die moet je met composer binnen halen. Misschien is het verstandiger de library zelf ook via composer binnen te halen (composer require picqer/exact-php-client) in je eigen project. Vervolgens moet je wel de composer autoloader laden in je eigen code.

Ik raad je sterk aan deze of een andere library te gebruiken. Zelf OAuth implementeren is niet verstandig en ook niet leuk. Heel veel mensen hebben dat al een keer voor je gedaan en gezorgd dat er goede / stabiele code staat waarbij edge cases ook werken.

Verder zou de voorbeeldcode voor de meeste programmeurs wel te begrijpen moeten zijn:
https://github.com/picqer...aster/example/example.php

[ Voor 7% gewijzigd door Pizzalucht op 06-07-2016 15:33 ]

Alle reacties


Acties:
  • 0 Henk 'm!

  • Pizzalucht
  • Registratie: Januari 2011
  • Nu online

Pizzalucht

Snotneus.

ExactOnline heeft een voorbeeldimplementatie in PHP:
https://github.com/exactonline/exact-php-client (deze is misschien meer up to date: https://github.com/picqer/exact-php-client )

[ Voor 28% gewijzigd door Pizzalucht op 06-07-2016 10:47 ]


Acties:
  • 0 Henk 'm!

  • DanielG
  • Registratie: Oktober 2005
  • Laatst online: 16-06 10:50

DanielG

i = 0x5f3759df - (i>>1); ☠₧ℳ🀪❣

je $post_data bevat ineens enkele quotes, echo die ter debug en je zal waarschijnlijk zoiets zien:

code=abc&grant_type=def&redirect_uri=".abs."&client_id=".abd."&client_secret=".xxx."

http://xyproblem.info/


Acties:
  • 0 Henk 'm!

Anoniem: 790699

Topicstarter
@Pizzalucht

De implementatie hiervan is mij niet geheel duidelijk. Daarnaast lijken er bestanden de missen?

@DanieIG

Dit komt door even snel de code aan te passen zodat de echte waarde niet zichtbaar zouden zijn ;)


Misschien is de aanroep met het aantal parameters ook wel verkeerd?

Acties:
  • 0 Henk 'm!

  • kwaakvaak_v2
  • Registratie: Juni 2009
  • Laatst online: 02-06 12:29
Anoniem: 790699 schreef op woensdag 06 juli 2016 @ 11:44:
@Pizzalucht

De implementatie hiervan is mij niet geheel duidelijk. Daarnaast lijken er bestanden de missen?
Heb je het pakketje wel via composer binnen gehaald? Anders mis je heel Guzzle, en die is redelijk essentieel voor de HTTP afhandeling.

Driving a cadillac in a fool's parade.


Acties:
  • Beste antwoord
  • +1 Henk 'm!

  • Pizzalucht
  • Registratie: Januari 2011
  • Nu online

Pizzalucht

Snotneus.

Anoniem: 790699 schreef op woensdag 06 juli 2016 @ 11:44:
@Pizzalucht

De implementatie hiervan is mij niet geheel duidelijk. Daarnaast lijken er bestanden de missen?

@DanieIG

Dit komt door even snel de code aan te passen zodat de echte waarde niet zichtbaar zouden zijn ;)


Misschien is de aanroep met het aantal parameters ook wel verkeerd?
De code maakt gebruik van een aantal libraries, die moet je met composer binnen halen. Misschien is het verstandiger de library zelf ook via composer binnen te halen (composer require picqer/exact-php-client) in je eigen project. Vervolgens moet je wel de composer autoloader laden in je eigen code.

Ik raad je sterk aan deze of een andere library te gebruiken. Zelf OAuth implementeren is niet verstandig en ook niet leuk. Heel veel mensen hebben dat al een keer voor je gedaan en gezorgd dat er goede / stabiele code staat waarbij edge cases ook werken.

Verder zou de voorbeeldcode voor de meeste programmeurs wel te begrijpen moeten zijn:
https://github.com/picqer...aster/example/example.php

[ Voor 7% gewijzigd door Pizzalucht op 06-07-2016 15:33 ]


Acties:
  • 0 Henk 'm!

  • Saven
  • Registratie: December 2006
  • Laatst online: 21-06 16:11

Saven

Administrator

Zou je niet al een bestaande koppeling gebruiken? Zijn er volgens mij voor elk platform en vrij goed betaalbaar. Scheelt je zoveel tijd :P

Acties:
  • 0 Henk 'm!

Anoniem: 790699

Topicstarter
Ik maak nu gebruik van de exact module https://github.com/picqer/exact-php-client echter loop ik tegen het zelfde probleem aan dat ik na het verkrijgen van mijn authenticatie key een "Bad Request" krijg wanneer ik mijn token probeer te verkrijgen. Iemand enig idee wat dit kan zijn?

Acties:
  • 0 Henk 'm!

  • nescafe
  • Registratie: Januari 2001
  • Nu online
Post je relevante code en maskeer je secrets. Anders blijft het gissen.

Ga voor jezelf na of de volgende zaken (Exact) overeenstemmen:
- callback/redirect url
- client id
- client secret

Afbeeldingslocatie: http://content.screencast.com/users/nescafe2002/folders/Default/media/486925ad-48be-4a46-844b-ed78c9df96af/07.07.2016-12.52.png

De callback/redirect url moet in jouw geval een valide url zijn; misschien dat je een trailing slash mist of juist moet toevoegen?

* Barca zweert ook bij fixedsys... althans bij mIRC de rest is comic sans

Pagina: 1