Eigen API Maken

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Pagina: 1 2 volgende »

 - Diov  -

- Diov -

22/08/2013 21:23:44
Quote Anchor link
Hoi !

Ik heb een website waar je promo's kan ingeven, en dit kunnen de mensen huren.
Tegenwoordig zet ik ook de pagina's online, deze kunnen ze op hun eigen host plaatsten.

Nu vragen ze om de database structuur, en de gegevens van daaruit.

Omdat ik niet de gegevens van de gebruikers wil vrijgeven, en eigenlijk ook wat controle wil hebben over wie mijn 'website' gebruikt, zat ik te denken aan een API (Een API zoals Facebook & twitter).

Deze zou in PHP & Javascript mogelijk moeten zijn (PHP voor de webbrowsers, en later voor de App).
Liefst eerst in PHP.

Ik weet totaal niet hoe ik hier aan begin.
Kan iemand me een paar handige links geven?

Of misschien uitleggen hoe dit werkt?
Want, je krijgt een key en een secret key. En die moet ik eerst controleren.

Is de key van de ene groep, dan mag hij alleen gegevens van die groep ophalen!
Dus alleen de gebruikers van die groep.

Ik hoop dat ik wat duidelijk ben, zoniet hoor ik het wel.
Alvast bedankt voor de moeite!

Diov
 
PHP hulp

PHP hulp

17/11/2024 16:37:10
 
Frank Nietbelangrijk

Frank Nietbelangrijk

22/08/2013 21:33:58
Quote Anchor link
promo's zegt me niet zo veel?
een api maken is eigenlijk vrij makkelijk. feitelijk werkt het het zelfde als een gewone webpagina opvragen. je hebt de juiste url nodig en je moet de juiste parameters meegeven. bijvoorbeeld www.diov.nl/api/userlist?pass=123

het verschil is wel dat je op deze url geen html teruggeeft maar of xml of json. Ik zou voor de laatste kiezen.
Het is natuurlijk belangrijk dat je voor je gebruikers dan een duidelijke handleiding schrijft .
 
Jens V

Jens V

22/08/2013 21:34:01
Quote Anchor link
Met eens te kijken naar REST (http://en.wikipedia.org/wiki/Representational_state_transfer) ga je al ver komen.
Gewijzigd op 22/08/2013 21:34:53 door Jens V
 
-Jens -

-Jens -

23/08/2013 00:56:23
Quote Anchor link
Als je OO PHP kan, kijk dan zeker ook eens naar SOAP. Zeer makkelijk en handig te beveiligen...
 
Frank Nietbelangrijk

Frank Nietbelangrijk

23/08/2013 12:16:26
Quote Anchor link
geef mij maar JSON.

hier een kleine opzet:

userlist.php:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
<?php

$users
= array(
    array(
        'name' => 'Frank',
        'email' => '[email protected]',
        'age' => 44
    ),
    array(
        'name' => 'Jaap',
        'email' => '[email protected]',
        'age' => 33
    ),
    array(
        'name' => 'Wendy',
        'email' => '[email protected]',
        'age' => 21
    )
);


$output = array(
    'userlist' => $users,
    'status' => 'success'
);

header('Content-type: application/json');
echo json_encode($output,JSON_PRETTY_PRINT);

?>


index.php:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
<?php

// zorg dat hij userlist.php kan vinden !!!
$serverurl = 'http://127.0.0.1/userlist.php';

if(!$json = @file_get_contents($serverurl)) {
    echo 'No data received, please make sure connection is working and requested API exists';
    exit;
}


$obj = json_decode($json);

?>

<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>json API example</title>
</head>

<body>
<p>Found <?php echo count($obj->userlist); ?> users.</p>
<p>Name of first user in the array: <?php echo $obj->userlist[0]->name; ?></p>
<p>Status: <?php echo $obj->status; ?></p>
</body>
</html>
 
 - Diov  -

- Diov -

23/08/2013 14:50:08
Quote Anchor link
Hoi!

Sorry dat ik niet meteen reageerde op jullie antwoorden, ik had ze wel al gelezen.

Ik weet nu hoe het werkt, maar dan heb ik nog een paar vraagjes:

-> Ik wil met een key & secret key werken, want niet iedereen mag de gegevens van de gebruikers weten. Moet ik dan deze sleutels telkens ook meesturen, en telkens mee checken?? Of hoe doe je dit?

-> Ik wil ook dat ze zelf query's kunnen maken, maar deze moeten dan beveiligd worden.
Je kan alleen selecteren van je eigen groep,
Alleen leden wijzigen van je eigen groep,
Alleen 1 lid per keer verwijderen van je eigen groep.

etc.

Hoe controleer ik dit het best?
Mvg,
Diov
 
- Ariën  -
Beheerder

- Ariën -

23/08/2013 14:56:05
Quote Anchor link
Ikzelf heb voor het licentiegedeelte van mijn CMS ook een API gebouwd, en deze controleert aan de hand van de username, api-key en de hostname alle informatie.

Wordt allemaal via GET meegestuurd.
 
 - Diov  -

- Diov -

23/08/2013 14:59:14
Quote Anchor link
Dus, als ik het goed begrijp komt dan die gegevens in volgende link:

www.domain.com/api/username=Diov&key=dfajmdfjdf5d5fad5fdf&host=diov&action=userlist

Zoiets dan?
Dan stuur ik telkens de key mee, per keer ik iets wil opvragen?

En kunnen ze dan de key niet onderscheppen?
Of is de key per gebruiker uniek? Of per 'App'?
 

23/08/2013 15:11:05
Quote Anchor link
Ik zou t zo doen, Diov:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
<?php
$username
= $_GET['username'];
$key = $_GET['key'];
$host = $_GET['host'];
$action = $_GET['action'];
//Als gebruikersnaam niet gelijk is aan 'Diov'
if ($username != 'Doiv') {
echo 'Foute Gebruikersnaam';
}

//Als de key niet gelijk is aan 'dfajmdfjdf5d5fad5fdf'
elseif ($key != 'dfajmdfjdf5d5fad5fdf') {
echo 'Foute Key';
}

//Als de host niet gelijk is aan 'Diov'
elseif ($host != 'Diov') {
echo 'Foute Host';
}

//Als de actie gelijk is aan 'userlist'
elseif ($action == 'userlist') {
echo 'Hier komt de lijst met leden';
}

// Anders is de actie fout:
else {
echo 'Foute actie';
}

?>


Getest en het werkt;)
Gewijzigd op 23/08/2013 15:11:34 door
 
 - Diov  -

- Diov -

23/08/2013 15:14:03
Quote Anchor link
Hey Frank,

De Host & De key,
Dat kunnen ze anderen dat toch achterhalen?
 

23/08/2013 15:18:13
Quote Anchor link
Php is een serverside taal, die kan niet uit de code worden uitgelezen. Zolang alles niet wordt doorgegeven, komen andere hier niet in. Tenzij ze natuurlijk alles goed invullen.
 
- Ariën  -
Beheerder

- Ariën -

23/08/2013 15:24:06
Quote Anchor link
Of via een oAuth-systeem waarbij die key's in een header (geloof ik) worden verpakt.
 
 - Diov  -

- Diov -

23/08/2013 15:24:27
Quote Anchor link
Hmmmm,

Alle Requests kan je toch volgen via webmaster tools?

Dan zien ze meteen die link? Of heb ik het mis?

Edit: Zag de reactie te laat van Aar, ff kijken naar oAuth..
Gewijzigd op 23/08/2013 15:24:58 door - Diov -
 

23/08/2013 15:32:38
Quote Anchor link
Geen idee of dat kan... Ik heb even een test voor je klaar staan.

Op http://teacherdutch.webatu.com/login_succes/level/test.php staat mijn bovenstaande script, nu alleen met aangepaste delen. De actie is userlist, de rest heb ik veranderd. Ik zou zeggen: Test uit of je dat kan inzien.

Voorbeeld link: http://teacherdutch.webatu.com/login_succes/level/test.php?username=Diov&key=ds22fgf3&host=Test&action=userlist
 
 - Diov  -

- Diov -

23/08/2013 15:37:24
Quote Anchor link
@Frank,

Idd, ik zie de key niet.
Misschien is dit toch wel de oplossing!

Ik zal het nu ook is proberen met 2 verschillende website's
 

23/08/2013 15:42:07
Quote Anchor link
Prima, ik hoor het wel als er nog vragen zijn.
 
- Ariën  -
Beheerder

- Ariën -

23/08/2013 15:43:32
Quote Anchor link
- Diov - op 23/08/2013 15:24:27:
Hmmmm,

Alle Requests kan je toch volgen via webmaster tools?

Dan zien ze meteen die link? Of heb ik het mis?

Edit: Zag de reactie te laat van Aar, ff kijken naar oAuth..

Maar geen requests via de server zelf ;-)
 
 - Diov  -

- Diov -

23/08/2013 16:25:31
Quote Anchor link
Oké, dus dan is het allemaal goed :D

Nu nog 2 vraagjes:
Twitter en Facebook gebruiken 2 keys: Secret & Public key?

Waarom?

En hoe laat ik de gebruikers query's opbouwen?
 

23/08/2013 16:28:54
Quote Anchor link
Waarschijnlijk heeft iedereen een publieke code, en elke persoon een aparte code (secret key).
En wat bedoel je precies met gebruikers query's opbouwen?
 
 - Diov  -

- Diov -

23/08/2013 16:29:40
Quote Anchor link
Ik bedoel de eigenaar van de website die de api gebruikt**

-> Ik wil ook dat ze zelf query's kunnen maken, maar deze moeten dan beveiligd worden.
Je kan alleen selecteren van je eigen groep,
Alleen leden wijzigen van je eigen groep,
Alleen 1 lid per keer verwijderen van je eigen groep.

etc.
 
- Ariën  -
Beheerder

- Ariën -

23/08/2013 16:34:46
Quote Anchor link
Je weet toch wel hoe Mysql(i) werkt? Dan kan je met SELECT dingen selecteren, UPDATE dingen aanpassen, INSERT dingen toevoegen, en DELETE dingen deleten.
 

Pagina: 1 2 volgende »



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.