fc2ブログ

PHPでOAuthを使ったサンプルコード

11 22, 2009

PHPでOAuthを使ったサンプルコード

PHPで作ったゲームサイトでOAuthを利用したので、使い方やサンプルをメモしておきます。
このページ(SDN Project)を参考(というかそのまま)にしていますので、こちらも見てみてください。

OAuthも以前書いたOpenIDと同様に仕組みそのものは難しいのですが、サンプルを見ながら自分なりに変えていけば、それほど難しくなかったりします。

大まかな手順は、以下の通りです。
①Twitterにアプリケーション登録をする
②OAuthのPHPをダウンロードする
③自分でPHPを書く
④サーバにアップ

Twitterにアプリ登録
まず、Twitterに自分のアカウントでログインTwitterのOAuth申請のサイトから、自分のアプリケーション名やサイトのアドレスを登録します。
twitterap01.png
twitterap02.png

Application Nameは、自分のサービスの名前です。ユーザは認証する際にこのアプリケーション名を確認することが出来ます。

Application Websiteは、自分のサービスのURLです。

Application Typeは、自分のサービスがデスクトップクライアント型か、ブラウザ上で提供されるサービスかどちらかを選びます。ここでは、ブラウザを選択します。

Callback URLは、Twitterのサイトで認証された後、どのページに推移するかを指定します。ここでは、twitterAuth.phpという自分でつくるページに認証後戻ってくるようにします。

Default Access Typeは、自分のサイトが書き込みを行う(Read&Write)のか、読むだけ(Read-Only)なのかを選びます。書き込みを選んだ場合には、自分のサイトがユーザに代わってつぶやきを投稿したり出来ます。 ここでは、ユーザの情報を取得するだけのサイトをつくるので、読み込みのみを選択します。

Use Twitter for Loginは、サイトがTwitterをログインの代わりとして使うかを選択します。 実際この項目をチェックした場合と、しない場合に何が違うのかよく分かっていません。。。すいません。

登録後、Consumer KeyConsumer Secretが発行されるので、メモっておきます。
この情報は後で使います。

また、登録情報に何か変更があった場合はTwitterのOAuth申請のサイトからいつでも変更可能です。


OAuthのPHPをダウンロードする
abrahamのgitから「twitteroauth」フォルダにあるファイルをダウンロードします。

以下の2つのファイルがあることを確認してください。
・OAuth.php
・twitteroauth.php


この2つのファイルがOAuthの難しい仕組みを考えなくてよくする、すばらしいコードです。


自分でPHPを書く
①トップページ
ここでは、index.phpとします。
以下のコードを入れてください。
<?php
session_start();
echo($_SESSION['username']);
?>
認証後、Twitterユーザ名を表示します。

また、以下のタグも入れてください。
<a href="myCode.php">Twitter認証</a>
このリンクをクリックすると↓で作成するTwitter認証ページへとび、そこからTwitterへリダイレクトされます。

②認証ページ
↓のサンプルコードをダウンロード(PCに保存)してください。
myCode.php(拡張子が.htmlになっているので.phpに変更してください)

ファイルを開いて、赤く丸がしてある部分を自分の環境に合ったように変更します。
twitterap04.png
twitterap05.png


コンシューマkey: Twitterアプリケーション申請の時に表示された文字列

コンシューマsecret: Twitterアプリケーション申請の時に表示された文字列

・$tok["screen_name"]: Twitterのユーザ名

・header("Location: /"): リダイレクト先の指定。

*③PHPを実行するサーバがプロキシサーバの内側にある場合(yonekawaさんコメントありがとうございました)
twitteroauth.php

curl_setopt($ci, CURLOPT_PROXY, 'proxy.example.com:8080');
を追加


サーバにアップ
これまでの4つのファイルをサーバにアップします。
階層は
 index.php
 myCde.php
  <twitter>(フォルダ)
    OAuth.php
    twitteroauth.php

これで完了です。

index.phpを表示し、リンクをクリックするとTwitterの画面が出てくると思います。
そこでアプリケーションへのアクセスを許可すると、トップページへ戻ってきて、Twitterユーザ名が表示されていれば成功です。

ソーシャルブックマークする。
Yahoo!ブックマークに登録 はてなブックマークに追加 このエントリをlivedoorクリップに登録 BuzzurlにブックマークBuzzurlにブックマーク @niftyクリップに追加

4 CommentsPosted in PHPのサンプル
4 Comments
By yonekawa12 11, 2009 - URL [ edit ]

ありがとうございます。
説明、とても分かりやすかったです。

私の場合、PHPを実行するサーバがプロキシー内にあったので、
twitteroauth.php にて、
curl_setopt($ci, CURLOPT_PROXY, 'proxy.example.com:8080');
とすれば動きました。

By kanno04 02, 2010 - URL [ edit ]

大変参考になりました。

By 01 24, 2011 - [ edit ]

このコメントは管理者の承認待ちです

By 10 10, 2011 - [ edit ]

このコメントは管理者の承認待ちです

Leave a comment
管理者にだけ表示を許可する
1 Trackbacks
MacビギナーPrograming01 21, 2010

とりあえず,完成したのでこちら(http://sevenbluese.pod3.net/) PHP+OAuthで承認をとって,twitter apiを使用しています. twitter apiによりtweetとタイムラ...

Top


プロフィール

スズキ ロイ

Author:スズキ ロイ
プライベート Web クリエーター。
海外のWebアプリ、ソーシャルアプリを中心に情報収集してます。

RSSリンクの表示
最新記事
全記事(数)表示
全タイトルを表示
人気エントリー
あわせて読みたい
あわせて読みたいブログパーツ
月別アーカイブ
最新コメント
最新トラックバック
カテゴリ