PHP : Zend Gdata による Picasa アップロード

  Google サイトでの認証後に処理



Zend Framework
Zend Framework: Downloads
Zend Framework: Documentation: Picasa Web Albums の使用法

アルバムid は、API で取得できますが、直接アップロードするだけならば、ギャラリーの
右サイドの RSS のリンクの内容から取得できます。

※ demos\Zend\Gdata\Photos.php のアップロード部分のみを抜き出しています

最初のログイン ( https )

Ggpicasa1


既にGoogle にログイン済の場合 ( https )

Ggpicasa2


アプリケーション側では、上記認証を一度でも行えば、セッション継続中は
sessionToken によって、アクセスする事ができます。

※ include_path="インストールパス\ZendFramework\library"

関連する記事

PHP : Zend Gdata による Google ドキュメントのセルの更新


  
<?
header( "Content-Type: text/html; Charset=utf-8" );
header( "pragma: no-cache" );
header( "Expires: Wed, 31 May 2000 14:59:58 GMT" );
header( "Cache-control: no-cache" );

require_once 'Zend/Loader.php';

Zend_Loader::loadClass('Zend_Gdata');
Zend_Loader::loadClass('Zend_Gdata_AuthSub');
Zend_Loader::loadClass('Zend_Gdata_Photos');
Zend_Loader::loadClass('Zend_Gdata_Photos_UserQuery');
Zend_Loader::loadClass('Zend_Gdata_Photos_AlbumQuery');
Zend_Loader::loadClass('Zend_Gdata_Photos_PhotoQuery');
Zend_Loader::loadClass('Zend_Gdata_App_Extension_Category');

// 認証後戻って来る URL
$currentUrl = "http://localhost/web/ggdoc/upload.php";
$file_path = "C:\\user\\web\\ggdoc\\twitter_api1.jpg";
// ギャラリーの RSS のリンク URL より取得
$albumId = "5473981708462353761";

session_start();

if (!isset($_SESSION['sessionToken']) && !isset($_GET['token'])) {

	$scope = 'http://picasaweb.google.com/data';
	$secure = false;
	$session = true;
	$authSubUrl = Zend_Gdata_AuthSub::getAuthSubTokenUri(
		$currentUrl,
		$scope,
		$secure,
		$session
	);
	echo "<a href=\"{$authSubUrl}\">Google でログインして下さい</a>";
	exit();
}

// *********************************************************
// ここから以降は認証済
// *********************************************************
if (!isset($_SESSION['sessionToken']) && isset($_GET['token'])) {
	// 戻ってきた時セットされたトークンで、
	// セッション用のトークンを取得します
	$_SESSION['sessionToken'] =
		Zend_Gdata_AuthSub::getAuthSubSessionToken(
			$_GET['token']
		);
}

// セッション用のトークンで接続します
$client = Zend_Gdata_AuthSub::getHttpClient($_SESSION['sessionToken']);

// フォトギャラリー
$photos = new Zend_Gdata_Photos($client);

// アップロード用のファイル情報
$fd = $photos->newMediaFileSource($file_path);
$fd->setContentType("image/jpeg");

// 新しいフォトエントリー
$entry = new Zend_Gdata_Photos_PhotoEntry();
$entry->setMediaSource($fd);
$entry->setTitle($photos->newTitle("Twitter API その壱"));

// ユーザーid取得
// ユーザidは $user に直接セットしても可
// 参照だけなら、他のユーザを指定できます
$query = new Zend_Gdata_Photos_UserQuery();
$query->setUser("default");
$userFeed = $photos->getUserFeed(null, $query);
$user = $userFeed->getTitle();

// アルバム取得の準備
$albumQuery = new Zend_Gdata_Photos_AlbumQuery;
$albumQuery->setUser($user);
$albumQuery->setAlbumId($albumId);

// アルバム取得
$albumEntry = $photos->getAlbumEntry($albumQuery);

// 指定したアルバムにアップロード
$result = $photos->insertPhotoEntry($entry, $albumEntry);
if ($result) {
	print "アップロードに成功しました<br>";
}
else {
	print "アップロードに失敗しました<br>";
}

?>
OK
  










  infoboard   管理者用   
このエントリーをはてなブックマークに追加





フリーフォントWEBサービス
SQLの窓WEBサービス

SQLの窓フリーソフト

素材

一般WEBツールリンク

SQLの窓

フリーソフト

JSライブラリ