ブログ   うい・らぶ・だいびんぐ   Cube 別館   flag_uk 英語サイト   ポータル
twitter Twitter でログイン
ホーム   最新ニュース   フォーラム   ダウンロード   写真集   リンク集   お問い合わせ RSS

SmartSection > Tools > PHP > Twitter ログイン - PEAR

Twitter ログイン - PEAR

投稿者: Ken 掲載日: 2010-8-18 (6268 回閲覧)
PEAR Services/Twitter のライブラリを使って、
OAuth プロトコルによる Twitter のログイン認証と Twitter への投稿を実装する。

デモ

Twitter ログインのデモ

前準備

必須な PEAR ライブラリイ
これらは開発途中なので、バージョンの指定が必要
バージョンは 2010年8月 時点のもの
- Services_Twitter-0.6.2 (使用上の注意)
- HTTP_OAuth-0.1.8
- HTTP_Request2-0.5.2
- Net_URL2-0.3.1

あったほうがよい PEAR ライブラリイ
- LOG
- DB
- MDB2
- MAIL
- Net_SMTP

あったほうがよい PECL ライブラリイ
- pecl_http

あったほうがよい PHP 拡張ライブラリイ
- curl
- fileinfo
- sqlite

コード

Services/Twitter.php に下記にサンプルが載っている


require_once 'Services/Twitter.php';
require_once 'HTTP/OAuth/Consumer.php';
try {
     $twitter = new Services_Twitter();

     $oauth   = new HTTP_OAuth_Consumer(
		$CONSUMER_KEY ,
        $CONSUMER_SECRET ,
        $AUTH_TOKEN ,
        $TOKEN_SECRET );

     $twitter->setOAuth($oauth);
     $msg = $twitter->statuses->update("I'm coding with PEAR right now!");
     print_r($msg);
} catch (Services_Twitter_Exception $e) {
     echo $e->getMessage(); 
}


$CONSUMER_KEY と $CONSUMER_SECRET は、
webアプリに固有のもので、
twiiter にwebアプリを登録すると発行される。

$AUTH_TOKEN と $TOKEN_SECRET は、
ユーザ毎に固有のもの。
下記の手順で取得できる。

index.php

try {
	$oauth = new HTTP_OAuth_Consumer(
		$CONSUMER_KEY , 
		ONSUMER_SECRET );
    $oauth->getRequestToken( 
		'http ://twitter.com/oauth/request_token', 
		'http ://example.com/callback.php' ); 
    $_SESSION['callback_token'] = $oauth->getToken();
    $_SESSION['callback_secret'] = $oauth->getTokenSecret();
	$redirect_url = $oauth->getAuthorizeUrl( 
		'http ://twitter.com/oauth/authorize' );
	header('Location: '.$redirect_url);
} catch (Exception $e) {
	echo $e->getMessage();
}


callback.php

try {
   	$twitter = new Services_Twitter;
   	$oauth   = new HTTP_OAuth_Consumer(
		$CONSUMER_KEY , 
		ONSUMER_SECRET  ,
		$_SESSION['callback_token'], 
		$_SESSION['callback_secret'] );
   	$oauth->getAccessToken( 
		'http ://twitter.com/oauth/access_token' , 
		$_GET['oauth_verifier'] );
   	$twitter->setOAuth($oauth);

// ここで取得
	$AUTH_TOKEN   = $oauth->getToken();
    $TOKEN_SECRET = $oauth->getTokenSecret();

	header('Location: http ://example.com/next.php');
} catch (Exception $e) {
	echo $e->getMessage();
}


ログイン認証

ログイン認証を行うには、
http ://twitter.com/oauth/authorize の代わりに
http ://twitter.com/oauth/authenticate を指定する

一般的な使い方では、Twitter にログインしなくとも、Twitter に投稿できる。
authenticate を指定すると、ログインしていないときは、ログインが要求される。

使用上の注意 Services_Twitter

pear コマンドでダウンロードした Services_Twitter を
他のサーバーにコピーするときは、注意が必要です。
Twitter API の定義ファイルが読み込めなくなる。

定義ファイルの置き場所を変更して。
Services/Twitter/data
- api.rng
- api.xml

プログラムも変更する。

protected function loadAPI()
{
//      $p = is_dir('???') 
//          ? array('???', 'Services_Twitter', 'data')
//          : array(dirname(__FILE__), '...', 'data');
        $p = array(dirname(__FILE__), 'Twitter', 'data');


参考

- PEAR Services/Twitter
- PHPでTwitter APIのOAuthを使う方法
- Overview of "Sign in with Twitter"
- PHPで「Sign in with Twitter」を実装する方法

ページ移動
良く読まれた記事 Twitter ログイン - Zend OpenID Janrain - google apps 次の記事
投票者の合計: 0
平均: 0
投稿された内容の著作権はコメントの投稿者に帰属します。
スポンサー

寄付
配布しているソフトが気に入ったら、寄付をお願いします。
寄付

PageRank のページ毎の表示
http://linux.ohwada.jp/ modules/smartsection/item.php?
PageRank 0 PageRank

メインメニュー

マニュアル

ログイン