PHP で Twitter API OAuth 認証 「ログイン」
Twitter API
Twitterアプリケーション登録
Twitter API を利用するためには、Twitterアプリケーション登録が必要です。まだ登録していない方は、次の記事のTwitter OAuth 簡単接続 REST API を PHP で活用! 「Twitterアプリケーション登録」をご覧下さい。また、以下でご紹介するサンプルコードでは、Twitterアプリケーションの Consumer key、Consumer secret、Access Token、Access Token Secret などが必要になるので、併せて確認しテキストに保存などしておいて下さい。
OAuth接続するためのTwitterライブラリのダウンロード
(1) OAuth接続するためのTwitterライブラリのダウンロード
OAuth接続するためのTwitterライブラリをTwitter libraries で紹介されている、Abraham Williams氏の twitteroauth を使用します。ファイルはGithub:https://github.com/abraham/twitteroauth からダウンロードできます。
最新ダウンロードファイル:twitteroauth
サンプルで使用しているバージョンのファイル:twitteroauth-master.zip 726 KB
Twitter OAuth認証とはTwitterの認証方式です。Twitterは元々Basic認証でしたが、セキュリティー面の向上を図るためにOAuth認証へ変更されました。Twitter API V1.1 からは、すべての情報取得にOAuth認証が必要になります。OAuthの仕様は記載されています。
Twitter application(My applications) へOAuth認証接続することで、Twitter API サービスを利用することが出来ます。Twitter API では、タイムラインの取得、リストの取得、つぶやきの検索、ツイートやリツイートなどの機能が用意されており、これらの機能をウェブアプリケーションやスマートフォンアプリケーションに実装することが出来ます。
詳しくは Docs を参照下さい。
Twitter application(My applications) へOAuth認証接続することで、Twitter API サービスを利用することが出来ます。Twitter API では、タイムラインの取得、リストの取得、つぶやきの検索、ツイートやリツイートなどの機能が用意されており、これらの機能をウェブアプリケーションやスマートフォンアプリケーションに実装することが出来ます。
詳しくは Docs を参照下さい。
(2) 動作環境
- PHP Version 5.3以上であること(phpinfo();関数で確認)
- cURL support enabledであること(phpinfo();関数で確認)
ログインするサンプルコード
ダウンロードしたライブラリファイルを解凍し、中のファイルをすべて「twitteroauth」ディレクトリの中に格納します。また、Twitterアプリケーションの「Settings」→「Application Details」→「Callback URLs」には、「callback.php」のURLを指定します。以下のサンプルコードでは、「https://wepicks.net/code-example/twitter-restapi/login/callback.php」が「Callback URLs」に指定されています。
本サイトの例:
https://wepicks.net/code-example/twitter-restapi/login/config.php
https://wepicks.net/code-example/twitter-restapi/login/login.php
https://wepicks.net/code-example/twitter-restapi/login/logout.php
https://wepicks.net/code-example/twitter-restapi/login/member.php
https://wepicks.net/code-example/twitter-restapi/login/callback.php
https://wepicks.net/code-example/twitter-restapi/login/twitteroauth/・・
https://wepicks.net/code-example/twitter-restapi/login/login.php
https://wepicks.net/code-example/twitter-restapi/login/logout.php
https://wepicks.net/code-example/twitter-restapi/login/member.php
https://wepicks.net/code-example/twitter-restapi/login/callback.php
https://wepicks.net/code-example/twitter-restapi/login/twitteroauth/・・
config.php
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | <?php //アプリケーションの Consumer Key と Consumer Secret $sTwitterConsumerKey = '***********************************'; //Consumer Key (API Key) $sTwitterConsumerSecret = '***********************************'; //Consumer Secret (API Secret) //アプリケーションのコールバックURL $sTwitterCallBackUri = 'https://wepicks.net/code-example/twitter-restapi/login/callback.php'; //コールバックURL //変数初期化 $objTwitterConection = NULL; //TwitterOAuthクラスのインスタンス化 $aTwitterRequestToken = array(); //リクエストトークン $sTwitterRequestUrl = ''; //認証用URL $objTwitterAccessToken = NULL; //アクセストークン $objTwUserInfo = NULL; //ユーザー情報 ?> |
login.php
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 | <?php ############################################## ### 初期設定 //セッションスタート session_start(); //文字セット header("Content-type: text/html; charset=utf-8"); //インクルード require_once 'config.php'; require_once 'twitteroauth/autoload.php'; //インポート use Abraham\TwitterOAuth\TwitterOAuth; ############################################## ### twitter oauth request token 取得 //TwitterOAuthクラスをインスタンス化 $objTwitterConection = new TwitterOAuth($sTwitterConsumerKey, $sTwitterConsumerSecret); //oauthリクエストトークンの取得 $aTwitterRequestToken = $objTwitterConection->oauth('oauth/request_token', array('oauth_callback' => $sTwitterCallBackUri)); //oauthリクエストトークンをセッションに格納 $_SESSION['twOauthToken'] = $aTwitterRequestToken['oauth_token']; $_SESSION['twOauthTokenSecret'] = $aTwitterRequestToken['oauth_token_secret']; ############################################## ### twitter 認証へ //Twitter認証URLの作成 $sTwitterRequestUrl = $objTwitterConection->url('oauth/authenticate', array('oauth_token' => $_SESSION['twOauthToken'])); //Twitter認証画面へリダイレクト header('location: '.$sTwitterRequestUrl); ?> |
logout.php
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 | <?php ############################################## ### 初期設定 //セッションスタート session_start(); //文字セット header("Content-type: text/html; charset=utf-8"); //セッション変数を全て解除 $_SESSION = array(); $_COOKIE = array(); //クッキー削除 setcookie("PHPSESSID", '', time() - 1800, '/'); //セッションを破棄する session_destroy(); ?> <html lang="ja"> <head> <meta charset="UTF-8"> <meta name="description" content=""> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>タイトル</title> <meta http-equiv="Content-Style-Type" content="text/css"> </head> <h2>Twitter アカウント ログアウト</h2> <?php echo "ログアウトしました。"; echo "<a href='https://wepicks.net/code-example/twitter-restapi/login/login.php'>ログインへ</a>"; ?> </body> </html> |
member.php
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 | <?php ############################################## ### 初期設定 //セッションスタート session_start(); //文字セット header("Content-type: text/html; charset=utf-8"); //インクルード require_once 'config.php'; require_once 'twitteroauth/autoload.php'; //インポート use Abraham\TwitterOAuth\TwitterOAuth; ############################################## ### アクセストークン確認 if(empty($_SESSION['twAccessToken'])){ echo 'error access token!!'; exit; } ############################################## ### ユーザー情報の取得 //TwitterOAuthクラスをインスタンス化 $objTwitterConection = new TwitterOAuth ( $sTwitterConsumerKey, $sTwitterConsumerSecret, $_SESSION['twAccessToken']['oauth_token'], $_SESSION['twAccessToken']['oauth_token_secret'] ); //ユーザー情報を取得 $objTwUserInfo = $objTwitterConection->get("account/verify_credentials"); ?> <html lang="ja"> <head> <meta charset="UTF-8"> <meta name="description" content=""> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>タイトル</title> <meta http-equiv="Content-Style-Type" content="text/css"> </head> <h2>Twitter アカウント ログイン完了!</h2> <?php echo $_SERVER['REQUEST_URI']; ?><br> <a href="logout.php">ログアウト</a> <pre> <?php var_dump($_SESSION['twAccessToken']); ?> </pre> <pre> <?php var_dump($objTwUserInfo); ?> </pre> </body> </html> |
callback.php
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 | <?php ############################################## ### 初期設定 //セッションスタート session_start(); //文字セット header("Content-type: text/html; charset=utf-8"); //インクルード require_once 'config.php'; require_once 'twitteroauth/autoload.php'; //インポート use Abraham\TwitterOAuth\TwitterOAuth; ############################################## ### oauthトークン確認 if(empty($_SESSION['twOauthToken']) || empty($_SESSION['twOauthTokenSecret']) || empty($_REQUEST['oauth_token']) || empty($_REQUEST['oauth_verifier'])){ echo 'error token!!'; exit; } if($_SESSION['twOauthToken'] !== $_REQUEST['oauth_token']) { echo 'error token incorrect!!'; exit; } ############################################## ### アクセストークン作成 //取得したoauthトークンでTwitterOAuthクラスをインスタンス化 $objTwitterConection = new TwitterOAuth ( $sTwitterConsumerKey, $sTwitterConsumerSecret, $_SESSION['twOauthToken'], $_SESSION['twOauthTokenSecret'] ); //アクセストークンの取得 $_SESSION['twAccessToken'] = $objTwitterConection->oauth("oauth/access_token", array("oauth_verifier" => $_REQUEST['oauth_verifier'])); //メンバーページへリダイレクト header('location: member.php'); |
タグ(=記事関連ワード)
タグ: twitter api
日付
投稿日:2018年8月3日
最終更新日:2018年08月04日
最終更新日:2018年08月04日
このカテゴリの他のページ
この記事へのコメント
トラックバックurl
https://wepicks.net/twitter-restapi-login/trackback/