Ondersteuningsforum

Hier kunt u vragen stellen en antwoorden krijgen op vragen over het gebruik, de werking van Conscribo en alles wat daarmee te maken heeft!

Bezoek de Conscribo website

You are not logged in.

Announcement

We accepteren op dit moment geen nieuwe registraties

#1 2020-07-27 10:43:06

v.verheul
Member

Onvoldoende rechten bij gebruik API

Goedendag,

Ik zou de API willen gebruiken om persoon gegevens vanuit Conscribo op te halen zodat we die in onze website kunnen gebruiken. Door dit bijvoorbeeld dagelijks te doen kan ook de website beschikken over een bijgewerkte lijst met onze leden.

Met een eerste test kan ik wel inloggen maar krijg ik de melding "Onvoldoende rechten op het relatiebeheer" wanneer ik ListFieldDefinitions aanroep. Zie de response hieronder:

    {"results":{"result":[{"sessionId":"moie8n.....","success":1,"requestSequence":"1"},{"success":0,"notifications":{"notification":["Onvoldoende rechten op het relatiebeheer"]},"requestSequence":"2"}]}}

De gebruiker die ik in het request meegeef heeft Admin rechten. Wordt dit misschien veroorzaakt door het *soort product* dat we nu afnemen?
Dit is het test script in Python:

import requests

api_session = requests.Session()
authorize = {
    'command': 'authenticateWithUserAndPass',
    'requestSequence': '1',
    'userName': '....username.....',
    'passPhrase': '....password.....',
}
reqfielddef = {
    'command': 'ListFieldDefinitions',
    'requestSequence': '2',
    'entityType': 'Persoon',
}
api_url = url = ''
api_request = {'requests': {'request': [authorize, reqfielddef]}}
response = api_session.post(api_url, json=api_request)
print(response.content)

Offline

#2 2020-08-03 09:08:58

Mathijs
Administrator

Re: Onvoldoende rechten bij gebruik API

Een andere reden van deze foutmelding is dat je een niet bestaand entityType meegeeft, want daar heb je theoretisch gezien natuurlijk geen rechten op.
Misschien dat je geen hoofdletter moet gebruiken of meervoud. Ik ken jullie administratie niet, dus ik weet niet wat voor 'id' het entitytype heeft.
Als je contact met ons opneemt per mail, dan kunnen wij eventueel verder helpen gezien jullie dan veiliger ook jullie accountnaam kunnen delen.

Het forum bekijken wij niet elke dag. Voor snellere reactie kan je ons ook mailen via support@conscribo.nl

Offline

#3 2020-08-09 14:27:09

v.verheul
Member

Re: Onvoldoende rechten bij gebruik API

Bedankt voor je antwoord, het was inderdaad de hoofdletter van Persoon, dat moest een kleine letter p zijn. Ik ontvang nu de velddefinities.

Nu heb ik een vervolgvraag: als ik listRelations aanroep krijg ik de response:  {'result': {'success': 0, 'notifications': {'notification': ['No valid fields requested']}, 'requestSequence': '3'}}
In de API documentatie staat bij het veld requestedFields het volgende: "De gewenste veldnamen zoals teruggekregen uit listFieldDefinitions". Ik neem dan aan dat hier een list met strings moet volgen (de strings zijn dan de fieldName waarden).

Ik heb dit request samengesteld:

    reqmembers = {
        'command': 'listRelations',
        'requestSequence': '3',
        'entityType': 'persoon',
        'requestedFields': ['code', 'weergavenaam'],
        'limit': 5,
    }

Achtereenvolgens stuur ik dan afzonderlijke requests naar de API (zie mijn eerdere vraag voor details):
api_request = {'request': authorize}
api_request = {'request': reqfielddef}
api_request = {'request': reqmembers}

De eerste twee gaan goed, maar de derde geeft de foutmelding "No valid fields requested".

Dit zijn definities die ik terug heb gekregen uit de tweede aanroep (naast een reeks andere velden, maar hier slechts twee getoond):
{'fieldName': 'code', 'entityType': 'persoon', 'label': 'Relatienummer', 'description': 'Uniek nummer voor de leden', 'type': 'text', 'required': True, 'readOnly': False}
{'fieldName': 'weergavenaam', 'entityType': 'persoon', 'label': 'Weergavenaam', 'description': 'Volledige naam van de relatie', 'type': 'text', 'required': False, 'readOnly': True}

Hoe moet ik de waarde voor 'requestedFields' aanbieden? Een list, of iets anders?

Groet,
Vincent

Offline

#4 2020-08-13 11:23:15

conscribo
Administrator

Re: Onvoldoende rechten bij gebruik API

De argumenten voor het listRelations request moeten (vanwege compatibiteit met xml) iets anders eruit zien:

reqmembers = {
        'command': 'listRelations',
        'requestSequence': '3',
        'entityType': 'persoon',
        'requestedFields': {fieldName: ['code', 'weergavenaam']},
        'limit': 5,
    }

Dit geldt voor alle lists in de API . (zie ook het stukje 'JSON Versus XML' in de connector documentatie)

Ik hoop dat je er hiermee uitkomt!

Offline

#5 2020-08-14 08:26:30

v.verheul
Member

Re: Onvoldoende rechten bij gebruik API

Dank je wel, nu werkt het goed. Ik begrijp nu ook hoe ik de documentatie 'JSON Versus XML' moet lezen: in de kolom 'type' (onder ..nodes) staat de naam die gebruikt moet worden (zoals in dit geval 'fieldName').

Offline

#6 2020-09-14 10:14:17

Mathijs
Administrator

Re: Onvoldoende rechten bij gebruik API

Fijn dat je eruit gekomen bent

Het forum bekijken wij niet elke dag. Voor snellere reactie kan je ons ook mailen via support@conscribo.nl

Offline

Board footer

Powered by FluxBB