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連携をすでに提供しているのであれば、上記でやったことはすでに実装していると思うので、比較的簡単に出来るかと思います。

広告

関連記事

datebox-date

jQueryMobileでカレンダー表示 -DateBoxプラグインの利用-

スマートフォン対応をしているとカレンダーの表示の仕方をスマートフォンらしくしたいことがあると思います

記事を読む

no image

iPhoneアプリ開発 芳名帳アプリ作成(6) -写真に保存-

* 今までの流れ - -[http://pplace.jp/2013/06/1531/:title=

記事を読む

no image

iPhoneアプリ開発 -WebViewで表示しているページで特定のリンククリック時の動作を変える-

* やりたいこと UIWebViewでWebページを表示し、特定のリンクをクリックした際には別処理を

記事を読む

no image

CakePHP1.3でスマートフォン対応

CakePHP1.3でスマートフォン対応のためにやったことをメモしておきます。 * 環境 -

記事を読む

スクリーンショット 2012-12-06 15.34.43

iPhoneアプリ開発 -端末がネットワークにつながっているかどうか知りたい-

* やりたいこと アプリがネットに繋がっていなければアラートボックスを表示させたい。 ネットに繋

記事を読む

no image

str_padとsprintfの速度

PHPで同じことが出来る「str_pad」と「sprintf」。 今まではsprintfを使う機会

記事を読む

スクリーンショット 2013-04-27 11.46.12

githubを使っての開発(2) -masterブランチにマージ-

前エントリーでgithub-flowをもとにした流れを書いたのですが、その中のマージについてもう少し

記事を読む

no image

iPhoneアプリ開発 -UIButtonのTouch Down、Touch up Inside、Touch up Outsideの使い方-

* Touch DownとTouch up Inside、Touch up Outsideの違い

記事を読む

Jenkins + iPhoneアプリ(番外1) -TestFlightを利用する-

* これまで - -- 執事(Jenkins)を雇いました。 * やりたいこと Jenk

記事を読む

no image

MySQLのバックアップ手順 -消えたら困るものはバックアップ-

そろそろデータが消えてもらったら困るぐらいになっていたのでバックアップをとることにしました。 とい

記事を読む

広告

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 ↑