So-net無料ブログ作成

twitter apiのOAuth承認機能 実装方法 [twitter]

管理人のHOGEです。


前回はtwitter api OAuth承認の仕組みについてご説明しました。

今回は実際にどのように実装するのかについてご説明いたします!!


1.まずAPIを使用するためにtwitterにアプリケーション登録をする

・twitterにログイン

・"https://twitter.com/apps"にアクセスする

・右上にある「Create New App」をクリック

・各項目を入力する

a1.PNG

・「Yes, I agree」にチェックを入れて「Create your Twitter application」をクリック




2.API keyとAPI secretを取得

・先ほど登録したアプリケーションの管理ページへ移動

・すると画面上部に「Details」「Settings」「API Keys」「Permissions」とタブがならんでいるので、  「API Keys」をクリックします

・「API Keys」タブ内にAPI keyとAPI secretがあります!!これをOAuth承認で使用します
a2.PNG



3.ライブラリを取得する

・「https://github.com/abraham/twitteroauth」のサイトの右下の箇所にある、「Download ZIP」からフォルダを取得

・さらにそのzipフォルダから「twitteroauth」フォルダを取得

「twitteroauth」フォルダから「OAuth.php」と「twitteroauth.php」を取り出して、3で使用するphpと同じ階層にセット




4.phpで実際にコーディングしてみる

・getToken.php
------------------------------------------------------------------------

// セッションスタート
session_start();

// twitteroauth.phpを読み込む
require_once('twitteroauth.php');

// アプリケーション登録時に取得したAPI keyとAPI secretを定数に入れる
define('API_KEY', 'xxxxxxxxxxxxxxxxxxxxxxxxxx');
define('API_SECRET', 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxx');
define('CALLBACK_URL', 'http://dev.test/callback.php');

// リクエストトークン取得
$tw_obj = new TwitterOAuth(API_KEY, API_SECRET);

$token = $tw_obj->getRequestToken(CALLBACK_URL);

// $token['oauth_token']がなかったらエラー
if(!isset($token['oauth_token'])){
echo "error: getRequestToken\n";
exit;
}

// callback.phpで使用するのでSESSIONに格納する
$_SESSION['oauth_token'] = $token['oauth_token'];
$_SESSION['oauth_token_secret'] = $token['oauth_token_secret'];

// 認証用URL取得
$authURL = $tw_obj->getAuthorizeURL($_SESSION['oauth_token']);

// リダイレクト
header("Location: " . $authURL);

------------------------------------------------------------------------



・callback.php
------------------------------------------------------------------------

// セッションスタート
session_start();

// twitteroauth.phpを読み込む
require_once('twitteroauth.php');

// アプリケーション登録時に取得したAPI keyとAPI secretを定数に入れる
define('API_KEY', 'xxxxxxxxxxxxxxxxxxxxxxxxxx');
define('API_SECRET', 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxx');

// getToken.phpで取得した$token['oauth_token']と一致するかチェック
if ($_SESSION['oauth_token'] !== $_REQUEST['oauth_token']) {
unset($_SESSION);
echo 'トークンが一致しません';
exit;
}

// アクセストークンを取得
$tw_obj = new TwitterOAuth(API_KEY, API_SECRET, $_SESSION['oauth_token'], $_SESSION['oauth_token_secret']);
$access_token = $tw_obj->getAccessToken($_REQUEST['oauth_verifier']);

// TwitterのユーザID + スクリーンネームを取得し変数へ格納
$userID = $access_token['user_id'];
$screenNAME = $access_token['screen_name'];

// あとはこの取得したデータを利用して様々な機能を実装できます
// (例:$userIDを使用して特定のユーザにダイレクトメッセージを送信できる機能)

------------------------------------------------------------------------



と、まぁこんな感じになります。
いかがでしたでしょうか??

トータルで30行程度のコードなので、簡単に実装できると思います!
是非、お試しください!!
nice!(0)  コメント(0)  トラックバック(0) 
共通テーマ:日記・雑感

twitter apiのOAuth認証とは!? [twitter]

管理人のHOGEです。

今回はtwitter apiのOAuth認証について書いていきたいと思います。



まず、そもそもOAuth認証とは?

OAuth認証とは、サービス間でユーザの同意のもと許可情報を受け渡しする機能のことです。
これだけではイメージしにくと思いますのでtwitterを例に具体的に説明していきます。

・webシステムAでtwitterが提供するOAuth apiを導入する。

・ユーザがシステムAでOAuth apiを実行する。(apiの処理が入った機能を実行)

・twitter側のapiがユーザに情報受け渡しの許可を求める。

・ユーザが許可したら、twitterのID、PASSが求められる。

・ID、PASSを入力してtwitterに承認される。

・twitterの情報をシステムAで使用可能になる。

だいたいこのような流れになります。



そして、これで何ができるかといいますと!

自社サイト側でログイン機能を実装しなくてよくなります。

OAuth apiを呼び出して認証されればログイン状態という感じにすればいいわけです!!(ユニークなIDが発行されます)

そして、ID、PASSの管理もこちらでする必要がなくなる(twitter側が管理する)ので、セキュリティ的にも強くなります。



どうでしょうか??
OAuth認証について興味が出てきましたでしょうか??

気になりましたら、実際に導入しちゃいましょう!!

次回は実際にOAuth認証のコーディングについてご説明していきたいと思います!!
タグ:Twitter API

twitterAPIでダイレクトメッセージ送信!! [twitter]

こんにちは。

管理人のHOGEです!!

本日はtwitter apiの機能である「direct_messages/new」についての 記事といいますか備忘録的なものを書いていきたいと思います。

まず、なぜにツイッターにダイレクトメッセージを送る機能が必要だったかといいますと、
とあるサイトを作成していまして、そこでユーザにメッセージを送る機能はメルアドだけではなく
SNS系のメッセージ機能も活用したほうがプロモーション的に強いのではないかということで、
どうしてもダイレクトメッセージが送れる機能が必要でした!!

同じような仕組みを構築しようとしている方もいますよね??

そこで、ネットで調べましたらすぐにでました!

ふむふむ。。。なんと簡単な!

$tw = new TwitterOAuth(CONSUMER_KEY, CONSUMER_SECRET);
$tw->OAuthRequest("https://api.twitter.com/1.1/direct_messages/new.json", "POST", array('user_id' => '999999999', 'text' => 'ダイレクトメッセージをテストへ送信しました。'));

実行はたったこれだけです。ツイッターAPI様様です!

これで、999999999のユーザIDの人に「ダイレクトメッセージをテストへ送信しました。」という
ダイレクトメッセージをシステムから送信できます!!

ちなみに"new.json"の部分は"new.xml"でもできるそうなのですが、僕の場合うまくいきませんでした。。。
あとバージョンも"1"ではなく"1.1"なので気を付けてください!!

※CONSUMER_KEYとCONSUMER_SECRETはツイッターアプリケーション登録時に発行されたものです。
※あと、アプリケーション側の権限は「read only」ではなく「read and write」にしておいてくださいね。

ではでは、是非お試しください!!
タグ:Twitter API
nice!(0)  コメント(0)  トラックバック(0) 
共通テーマ:日記・雑感

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。

×

この広告は1年以上新しい記事の更新がないブログに表示されております。