0251 / 590 837 15
info@a-coding-project.de

Personenbezogene Informationen mit der Google+ API abfragen

Angeknüpft an meinen Artikel „Tutorial: Google Plus API“ möchte ich euch heute zeigen, wie man Informationen aus der Google+ API herausholt. Diese Informationen können zum Beispiel über die Person und dessen Aktivitäten auf Google+ sein.

Wer das Beispiel aus meinem letzten Artikel ausprobiert hat, bekommt bereits den Namen und ein Bild der Person angezeigt. Im PHP-Script werden diese folgendermaßen ausgelesen:

$me = $plus->people->get('me');

Dort werden alle Informationen über den eingeloggten User geholt und in das $me-Objekte gespeichert. Über den print_r-Befehl kann man nun alle Details auslesen.

Zur Person gibt es bereits folgende Daten:

Eigenschaft Beschreibung Beispiel
kind Art des Objektes (in dieser Abfrage immer gleich) plus#person
id Eindeutige Nummer 112893403772892580841
displayName Name Stefan Wienströer
tagline Die Zeile, die im Profil direkt unter dem Namen steht. Das bin ich.
gender Geschlecht male
aboutMe Der Text, der im Profil bei „Über mich“ angegeben werden kann. Dieser Text ist bei mir noch leer 😉
relationshipStatus Beziehungsstatus single
url Url des Profils https://plus.google.com/11289340…
image Profilbild
urls Array mit Websites / Profile der Person http://stevieswebsite.de
organizations Arrray des Berufs / der Arbeitgeber Fachinformatiker Anwendungsentwicklung
playedLived Arrray der Wohnorte Beelen

Zum Testen habe ich das Starter-Script von Google mal so umgeschrieben, dass es alle personenbezogenen Informationen ausgibt. So kann man die Funktionalität schon mal nutzen.
Die Aktivitäten sind etwas umfangreicher, weshalb ich diese in einem extra Artikel beschreiben werde.

<?php
/*
 * Copyright 2011 Google Inc.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
require_once '../../src/apiClient.php';
require_once '../../src/contrib/apiPlusService.php';

session_start();

$client = new apiClient();
$client->setApplicationName("Google+ PHP Starter Application");
// Visit https://code.google.com/apis/console to generate your
// oauth2_client_id, oauth2_client_secret, and to register your oauth2_redirect_uri.
$client->setClientId('BITTEERSETZEN');
$client->setClientSecret('BITTEERSETZEN');
$client->setRedirectUri('URLDESSCRIPTS_BITTEERSETZEN');
$client->setScopes(array('https://www.googleapis.com/auth/plus.me'));
$plus = new apiPlusService($client);

if (isset($_REQUEST['logout'])) {
  unset($_SESSION['access_token']);
}

if (isset($_GET['code'])) {
  $client->authenticate();
  $_SESSION['access_token'] = $client->getAccessToken();
  header('Location: http://' . $_SERVER['HTTP_HOST'] . $_SERVER['PHP_SELF']);
}

if (isset($_SESSION['access_token'])) {
  $client->setAccessToken($_SESSION['access_token']);
}

if ($client->getAccessToken()) {
  $me = $plus->people->get('me');
  $_SESSION['access_token'] = $client->getAccessToken();
} else {
  $authUrl = $client->createAuthUrl();
}
?>
<!doctype html>
<html>
  <body>
    <header>
      <h1>Google+ Sample App</h1>
    </header>
    <div class="box">
    
      <?php if(isset($me)){ ?>
        <h2>Allgemeine Informationen</h2>
        <table>
          <tr>
            <td>$me['kind']</td>
            <td><?PHP echo $me['kind']; ?></td>
          </tr>
          <tr>
            <td>$me['id']</td>
            <td><?PHP echo $me['id']; ?></td>
          </tr>
          <tr>
            <td>$me['displayName']</td>
            <td><?PHP echo $me['displayName']; ?></td>
          </tr>
          <tr>
            <td>$me['tagline']</td>
            <td><?PHP echo $me['tagline']; ?></td>
          </tr>
          <tr>
            <td>$me['gender']</td>
            <td><?PHP echo $me['gender']; ?></td>
          </tr>
          <tr>
            <td>$me['aboutMe']</td>
            <td><?PHP echo $me['aboutMe']; ?></td>
          </tr>
          <tr>
            <td>$me['relationshipStatus']</td>
            <td><?PHP echo $me['relationshipStatus']; ?></td>
          </tr>
          <tr>
            <td>$me['url']</td>
            <td><?PHP echo $me['url']; ?></td>
          </tr>
          <tr>
            <td>$me['image']['url']</td>
            <td>
              <img src="<?PHP echo $me['image']['url']; ?>" />
            </td>
          </tr>
        </table>
        <h2>Websites</h2>
        <ul>
          <?PHP foreach($me['urls'] as $url){ ?>
            <li>
              <a href="<?PHP echo $url['value']; ?>">
                <?PHP echo $url['value']; ?>
              </a>
            </li>
          <?PHP } ?>
        </ul>
        <h2>Organisationen</h2>
        <ul>
          <?PHP foreach($me['organizations'] as $organization){ ?>
            $organization['name']: <?PHP echo $organization['name']; ?><br />
            $organization['title']: <?PHP echo $organization['title']; ?><br />
            $organization['type']: <?PHP echo $organization['type']; ?><br />
            $organization['primary']: <?PHP echo $organization['primary']; ?><br />
          <?PHP } ?>
        </ul>
        <h2>Wohnorte</h2>
        <ul>
          <?PHP foreach($me['placesLived'] as $place){ ?>
            $place['value']: <?PHP echo $place['value']; ?><br />
            $place['primary']: <?PHP echo $place['primary']; ?><br />
          <?PHP } ?>
        </ul>
      <?php } ?>
      
      <?php
        if(isset($authUrl)) {
          print "<a class='login' href='$authUrl'>Connect Me!</a>";
        } else {
          print "<a class='logout' href='?logout'>Logout</a>";
        }
      ?>
    </div>
  </body>
</html>

Kommentare

Frank schrieb am 25.09.2011:

Gibt es schon Erkenntnisse zum Thema Verbinde Dich mit deinem Google+ Konto?

Stefan Wienströer schrieb am 26.09.2011:

Ja, bei dem Beispiel gibt es ja bereits eine Authentifizierung. Du kannst einfach die ID nutzen, die zurückkommt.