- 2008-05-02 (金) 7:00
- Zend_Gdata
intro
Zend_Gdata_Docsを利用して、csvファイルをアップロードしgoogleスプレッドシートを作成します。
詳細に関してはGoogle Document List Data APIを参照してください。
以下のプログラムを実行するにはgoogle docsを利用可能なgoogleアカウントが必要です。
一応デモサイトからも動作を確認できます(セキュリティについては詳しくは知りませんが)。
詳細に関してはGoogle Document List Data APIを参照してください。
以下のプログラムを実行するにはgoogle docsを利用可能なgoogleアカウントが必要です。
一応デモサイトからも動作を確認できます(セキュリティについては詳しくは知りませんが)。
1.コントローラの作成
以下のように
application/constorllers/GdocsController.phpファイルを作成します。
<?php require_once 'Zend/Controller/Action.php'; require_once 'Zend/Gdata.php'; require_once 'Zend/Gdata/AuthSub.php'; require_once 'Zend/Gdata/Docs.php'; require_once 'Zend/Session/Namespace.php'; class GdocsController extends Zend_Controller_Action { protected $_session; protected $_templateFile = '/path/to/template.csv'; protected $_title = 'Test Spreadsheet'; public function preDispatch() { $this->_session = new Zend_Session_Namespace('GdocsController'); } public function indexAction() { if (!isset($this->_session->cal_token)) { if (isset($_GET['token'])) { // You can convert the single-use token to a session token. $token = $_GET['token']; $session_token = Zend_Gdata_AuthSub::getAuthSubSessionToken($token); // Store the session token in our session. $this->_session->cal_token = $session_token; } else { // Display link to generate single-use token $url = 'http://'. $_SERVER['SERVER_NAME'] . $_SERVER['REQUEST_URI']; $scope = 'http://docs.google.com/feeds/documents'; $secure = false; $session = true; $googleUri = Zend_Gdata_AuthSub::getAuthSubTokenUri( $url, $scope, $secure, $session); $this->view->message = "Go <a href='$googleUri'>Google Login Screen</a>"; return $this->render(); } } } public function createAction() { $client = Zend_Gdata_AuthSub::getHttpClient($this->_session->cal_token); $docs = new Zend_Gdata_Docs($client); $newDocumentEntry = $docs->uploadFile( $this->_templateFile, $this->_title, Zend_Gdata_Docs::lookupMimeType($fileExtension), Zend_Gdata_Docs::DOCUMENTS_LIST_FEED_URI ); $this->view->message = 'Document was created!Check it from your google docs page.'; } public function logoutAction() { if (isset($this->_session->cal_token)) { Zend_Gdata_AuthSub::AuthSubRevokeToken($this->_session->cal_token); unset($this->_session->cal_token); } $this->_helper->redirector('index'); } }
2.ビューの作成
以下のように
application/views/scripts/gdocs/index.phtmlファイルを作成します。
<?php if (isset($this->message)) : ?> <?= $this->message ?> <?php else : ?> <ul> <li><a href="<?= $this->url(array('action'=>'create'))?>">create spreadsheet</a></li> </ul> <div> <a href="<?= $this->url(array('action'=>'logout'))?>">Logout</a> </div> <?php endif; ?>
以下のようにapplication/views/scripts/gdocs/create.phtmlファイルを作成します。
<?php if (isset($this->message)) : ?> <?= $this->message ?> <?php endif; ?> <div> <a href="<?= $this->url(array('action'=>'index'))?>">Back</a> </div>
3.確認
Webサーバにアクセスし、googleアカウントでログイン後、ドキュメント作成を実行してみてください。
履歴
| 日付 | 内容 |
|---|---|
| 2008/5/2 | 公開 |
Comments:0
Trackbacks:0
- Trackback URL for this entry
- http://www.oplabo.jp/article/40/trackback
- Listed below are links to weblogs that reference
- Zend_Gdata_DocsによるGoogleドキュメントの作成 from Open Programming Laboratory