-
Notifications
You must be signed in to change notification settings - Fork 15
PHP SDK Tutorial App
<html><body> <head> <title>Tutorial: FamilySearch PHP SDK</title> </head> <h1>Welcome to the Gedcom X PHP SDK tutorial.</h1> <p>To get started you must:<br> 1) Initialize your "app key" and "redirect URI".<br> 2) Authenticate with FamilySearch by logging in as a user.<br> (Use the sandbox User ID and password given you when you registered as a partner.)</p> <h3>(Read and enable the "SETUP" and "AUTHENTICATE" sections in this tutorial.php file then refresh this page. To enable a section, remove the block comment tags /* and */ for the section.)<br> </h3>
<?php
/* (remove this line) // THESE "require" AND "use" COMMANDS ARE REQUIRED FOR THE PHP SDK TO WORK require '/vendor/autoload.php'; use Gedcomx\Extensions\FamilySearch\Rs\Client\FamilySearchClient;
// INITIALIZE A PHP SESSION session_start();
// INITIALIZE "YOUR" CLIENT OPTIONS IN AN ARRAY $clientOptions = array( 'environment' => 'sandbox', // LOAD YOUR APP KEY 'clientId' => 'yourAppKeyGoesHere', // MAKE SURE THIS REDIRECT URI IS ASSOCIATED WITH YOUR APP KEY. 'redirectURI' => 'http://localhost:5000/tutorial.php' );
// AFTER YOU HAVE AUTHENTICATED, INITIALIZE THE ARRAY THAT // IS NEEDED TO INSTANTIATE AN AUTHENTICATED CLIENT if(isset($_SESSION['fs_access_token'])){ $clientOptions['accessToken'] = $_SESSION['fs_access_token']; }
// INSTANTIATE A CLIENT $client = new FamilySearchClient($clientOptions);
*/ //(remove this line)
/* if(!isset($_SESSION['fs_access_token'])){ // AUTHENTICATE
if(!isset($_GET['code'])) { // GET AN AUTHORIZATION CODE header('Location: ' . $client->getOAuth2AuthorizationURI()); } // LOAD $code FROM THE URI PARAMS $code = $_GET['code']; // EXCHANGE THE AUTHORIZATION CODE FOR AN ACCESS TOKEN, AND STORE IT IN A SESSION VARIABLE $_SESSION['fs_access_token'] = $client->authenticateViaOAuth2AuthCode($code)->getAccessToken(); }
?> <h1>Step 1: Authenticate with FamilySearch</h1> <h3>CONGRATULATIONS! Your user is authenticated.</h3> <p>The access token (Client ID) is:<br> <?=$_SESSION['fs_access_token']?> <br> It has been stored in a session so that future interactions in this tutorial are authenticated.</p> <h3>(Now, read and enable the CURRENT USER section.)</h3> <?php
*/
/* echo "<h1>Step 2: Get Current User</h1>";
// READ THE CURRENT USER PERSON AND SAVE THE RESPONSE $response = $client->familytree()->readPersonForCurrentUser(); // GET THE PERSON FROM THE RESPONSE $person = $response->getPerson(); // DISPLAY THE CURRENT USER INFO printPerson($person);
echo "<h3>(Now, read and enable the SEARCH section.)</h3>";
*/
/* ?> <h1>Step 3: Search for a Person by Name</h1> <form action="" method="post"> <p>Enter Last Name (surname): <input type="text" name="lastname" /></p> </form>
<?php if (isset($_POST['lastname'])) { // CONSTRUCT THE SEARCH QUERY $query = new Gedcomx\Rs\Client\Util\GedcomxPersonSearchQueryBuilder(); // LOAD THE SEARCH PARAMETER(S)INTO THE QUERY STRUCTURE $query→surname($_POST['lastname']); // PERFORM THE SEARCH // Search for matches and save the response $searchResponse = $client→familytree()→searchForPersons($query); if ($searchResponse→getResults()) { // MATCHES FOUND // Get the matching results $entries = $searchResponse→getResults()→getEntries();
{ // DISPLAY THE RESULTS ?> <h3>Search Results</h3> <table class="table"> <tr> <th>Id</th> <th>Name</th> <th>Birth</th> </tr> <?php foreach($entries as $entry){ // Each $entry can contain spouses and parents as well as the // matched person. The $entry ID is the ID of the matched person. $personId = $entry->getId(); $gedcomx = $entry->getContent()->getGedcomx(); foreach($gedcomx->getPersons() as $person){ // When examining the gedcomx content, we only display the matched person. if($person->getId() === $personId){ $display = $person->getDisplayExtension(); ?> <tr> <td><?= $person->getId(); ?></td> <td><?= $display->getName(); ?></td> <td><?= $display->getBirthDate(); ?></td> </tr> <?php } } } echo '</table>'; } // END DISPLAY THE RESULTS echo "<h3>(Now, read and enable the READ PID section.)</h3>"; } // END MATCHES FOUND } */ // *** END: SEARCH
/* ?> <h1>Step 4: Read a Person by Person ID</h1> <form action="" method="post"> <p>Enter a Person ID: <input type="text" name="pid" /></p> </form>
<?php if (isset($_POST['pid'])) { // READ THE PERSON AND SAVE THE RESPONSE $response = $client→familytree()→readPersonById($_POST['pid']); // GET THE PERSON FROM THE RESPONSE $person = $response→getPerson(); if (!$person) exit; // DISPLAY THE PERSON INFO echo "<h3>The person is:</h3>"; printPerson($person); echo "<h1>CONGRATULATIONS!!! You have finished the PHP tutorial app exercise.<br> NEXT: You may want to take a self-guided look at the Sample App</h1>"; } */
function printPerson($person){
if(!$person) return;
$personId = $person->getId(); $displayInfo = $person->getDisplayExtension(); ?> <h3><?= $displayInfo->getName(); ?></h3> <div class="panel panel-default"> <table class="table"> <tr> <th>ID</th> <th> Gender</th> <th> Birth Date</th> <th> Status</th> </tr> <tr> <td><?= $personId; ?></td> <td><?= $displayInfo->getGender(); ?></td> <td><?= $displayInfo->getBirthDate(); ?></td> <td><?= $person->isLiving() ? 'Living' : 'Deceased'; ?></td> </tr> </table> </div> <?php } // **END OF printPerson FUNCTION**
?> </body></html>