Twitterでサービスにログイン -ソーシャルログイン-

公開日: : IT, Twitter


 やりたいこと

  • 自身のWebサービスにTwitterIDでログイン(ソーシャルログイン)したい。

最近(結構前から?)流行っているソーシャルログインです。

 前提

  • 自身のWebサービスにTwitter連携したデータが保存されている。

ログインするわけですから、Twitter連携したユーザーのデータが必要になります。
Twitter連携をしているサービスなら、ユーザーの「Access token」「Access token secret」の2つは保存しているかと思います。
この2つの値を用いて、ログインします。

 ログインの流れ

自分のWebサービスにログインするまでの流れは以下の4段階です。

 [1]リクエストトークンの取得

以下のAPIを用いてリクエストトークンを取得します。
その際に、oauth_callbackは自分のWebサービスの指定の場所にします。
POST oauth/request_token | Twitter Developers

取得に成功すると、以下のような形式の文字列が返ってきます。
oauth_token=oauth_tokenの値&oauth_token_secret=oauth_token_secretの値

あとで使うので、セッションにそれぞれの値を保持します。
$_SESSION[‘oauth_token’] = $match[1];
$_SESSION[‘oauth_token_secret’] = $match[2];

 [2]アクセス許可画面

トークンの取得で、取得した「oauth_tokenの値」を用いて以下のURLへリダイレクトさせます。
http://api.twitter.com/oauth/authenticate?oauth_token=oauth_tokenの値

上記URLに飛ぶと、まだアクセス許可をしていない場合は、アクセス画面が表示されます。
すでにアクセス許可をしている場合は、そのまま元の自身のWebサービスに戻ってきます。

 [3]アクセストークンの取得

以下のAPIを用いてアクセストークンを取得します。
その時の「oauth_token」「oauth_token_secret」は[1]でセッションに保存していた値を使います。
POST oauth/access_token | Twitter Developers

取得に成功すると、以下のような形式の文字列が返ってきます。
oauth_token=Access tokenの値&oauth_token_secret=Access token secretの値&user_id=ユーザID&screen_name=スクリーン名

 [4]ログイン

[3]で得た「Access token」「Access token secret」を用いて、自身のWebサービスに保存されている値を参照し、該当のユーザーがいるかを確認します。
存在していれば、ログイン処理をおこないます。

 まとめ

上記の流れで、Twitterのソーシャルログインはできます。
結構、面倒なように見えますが、Twitter連携をすでに提供しているのであれば、上記でやったことはすでに実装していると思うので、比較的簡単に出来るかと思います。

広告

関連記事

no image

ソーシャルボタン(Twitterのフォローボタン、Facebookのオススメボタン)を設置する

サイトにソーシャルボタンを設置しようと思いちょこっと調べてみました。 * 設置するボタン

記事を読む

no image

カレログ騒動で考えたライフログのこと

今回、カレログというAndroidアプリが話題になり騒動になってます。 というわけで、ふとカレログ

記事を読む

no image

Objective-cで悩んでいたこと −アクセサのことについて−

* 疑問 以前書いたiPhoneアプリを開発していて(Objective-Cを触っていて)疑問に思

記事を読む

no image

CakePHPのモデルのキャッシュではまった -新しく追加したカラムに値が入らない-

タイトルのとおり、ちょこっとCakePHPではまったのでメモ。 * 作業内容 -MySQLで、ある

記事を読む

iPhoneアプリ開発 -UIScrollViewでタッチを取得-

* やりたいこと UIScrollViewでタッチを取得する。 * 方法 通常のUIScrollV

記事を読む

no image

第二回Androidテスト祭り参加記録 -祭りに参加してきたよ-

久しぶりに勉強会に参加してきました。 参加してきたのは「第二回Androidテスト祭り(4/28)

記事を読む

WordPressプラグイン「WP Hatena Notation」にPullRequestを投げた話

WordPressではてな記法が利用できる「WP Hatena Notation」を重宝しています。

記事を読む

NEC_0882

Facebookで名刺を作ってみた -Mooの名刺作成サービス-

1ヶ月~半月くらい前に話題になっていたMooの名刺作成サービス。 話題になっていた時期に注文した名

記事を読む

Jenkins + iPhoneアプリ(3) -ipaファイルをTestFlightにアップロード-

* これまで - -[http://pplace.jp/2013/01/1192/:title=

記事を読む

no image

複数アカウントでgithubを使う

1つの端末で複数のアカウントを使いたくなったので、その方法を整理してみた。 流れとしては以下のとおり

記事を読む

広告

Message

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

次のHTML タグと属性が使えます: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

広告

no image
[感想] Effective Objective-C 2.0 ☆☆☆☆★(4.5)

* 構成 - 第1章 Objective-Cに慣れる -

no image
[感想] iOSアプリテスト自動化入門 ☆☆☆(3.0)

* 構成 - Chapter 1 テスト自動化への取り組み

DeployGateを試してみた(iOS編) -DeployGateがiOSに対応-

今までのDeployGate - -[http://pplace.

iPhone/iPadアプリを開発するためにやったこと

今までに、iPhoneを3本ほどリリース((リリースしたアプリは全て1

no image
ターミナルでgitのコマンドを補完したりブランチ名を表示する – macでgitを便利に使うために –

* やりたいこと macのターミナルでgitをいじっていると -今の

→もっと見る

PAGE TOP ↑