Google Plus

Das Google.Plus-Modul ist eine Referenzimplementierung, die auf den Einzelbedarf anzupassen ist. Es bezieht in dieser Implementierung die 25 neusten Aktivitäten aus der bezeichneten Seite (Person oder Seite) und gibt diese aus.

 
<?php
 
 
/**
 * Google Plus API implementation.
 * 
 * @author Andreas Kummer, w3concepts AG
 * @copyright Copyright &copy; 2012, w3concepts AG
 * 
 * @link https://developers.google.com/+/api/ Google+ API Documentation
 */
class Module_Google_Plus_Class extends Aitsu_Module_Abstract {
 
	protected $_cacheIfLoggedIn = true;
	protected $_disableCacheArticleRelation = true;
 
	protected $_apiKey = null;
	protected $_userId = null;
	protected $_endPoint = null;
 
	protected function _init() {
 
		$this->_apiKey = Aitsu_Config :: get('google.api.key');
		$this->_userId = Aitsu_Content_Config_Text :: set(
			$this->_index, 
			'Google.Plus.UserId', 
			'User ID', 
			'Google+ User ID'
		);		
		$this->_endPoint = 'https://www.googleapis.com/plus/v1/people/' . 
			$this->_userId . 
			'/activities/public';
 
		$this->_id = $this->_endPoint;
	}
 
	protected function _main() {
 
		if (empty($this->_userId)) {
			return '';
		}
 
		$client = new Zend_Http_Client($this->_endPoint, array (
			'maxredirects' => 0,
			'timeout' => 30
		));
		$client->setParameterGet(array (
			'key' => $this->_apiKey,
			'maxResults' => 25
		));
		$response = $client->request();
 
		$view = $this->_getView();
		$view->data = json_decode($response->getBody());
 
		return $view->render('index.phtml');
	}
 
	protected function _cachingPeriod() {
		/*
		 * 1 hour.
		 */
		return 3600;
	}
 
}
 

Anpassungen sind in der Praxis in erster Linie in folgendem Template vorzunehmen:

 
<?php foreach ($this->data->items as $item) : ?>
<div style="border:1px dotted grey; padding:2px 5px 2px 5px; margin-bottom:10px;">
	<p style="margin:0;"><?php echo $item->object->content; ?></p>
	<?php if (isset($item->object->attachments)) : ?>
		<?php foreach ($item->object->attachments as $att) : ?>
			<?php if ($att->objectType == 'photo') : ?>
				<img src="<?php echo $att->image->url; ?>" title="<?php echo $att->content; ?>" />
			<?php elseif ($att->objectType == 'article') : ?>
				<h3><?php echo $att->displayName; ?></h3>
				<p><?php echo $att->content; ?></p>
			<?php endif; ?>
		<?php endforeach; ?>
	<?php endif; ?>
</div>
<?php endforeach; ?>
 

Ein Standard-Template mit optimiertem HTML-Markup folgt demnächst.

Voraussetzungen

  1. Sie müssen die Anwendung (d.h. die Website) bei Google Code als API-nutzende Anwendung registrieren und sich einen API-Schlüssel erstellen lassen: Google APIs Console
  2. Diesen Schlüssel müssen sie in der /application/config/config.ini als google.api.key transparent machen.
  3. Dann muss lediglich das Modul nach dem Einbinden konfiguriert werden. Dazu ist nur die Bezeichnung der Seiten-ID (Person oder Seite) erforderlich.

Weiterführende Links

Administrationsoberfläche für Services von Google.
Neu in Entwicklung: Google Maps-Shortcode mit Referenzierung von mehrereren Standorten.

Ticker

03.01.12  -  Die Pause ist vorüber und wir sind mit neuem Tatendrang wieder an der Arbeit. Willkommen im 2012!

23.12.11  -  Wir wünschen allen frohe Festtage und einen guten Rutsch ins Neue Jahr!