fc2ブログ

twitter のユーザ認証

twitter のユーザ認証

#07 ユーザー認証をしてみよう
http://dotinstall.com/lessons/tw_connect_php_v2/21907
を参考にユーザ認証について学習

認証したユーザーの情報を取得するためのAPIは
https://dev.twitter.com/docs/api/1.1/get/account/verify_credentials
を参考にする

認証に必要な callback.php を作成

ユーザ認証には
codebird.php を使うので
require_once('config.php');
require_once('codebird.php');
で読み込む
ファイルのパスに注意

初期化に
consumer key
consumer secret
が必要なので、これは定数から取得する

初期化のあたりは、
https://github.com/mynetx/codebird-php

1. Authentication
を参考にして、ほぼコピペ

Codebird\Codebird::setConsumerKey('YOURKEY', 'YOURSECRET');

Codebird::setConsumerKey(CONSUMER_KEY, CONSUMER_SECRET);
というように定数に変更

$cb = \Codebird\Codebird::getInstance();
はそのままコピペ

ユーザ認証関連もコピペでOKらしいけど
https://github.com/mynetx/codebird-php

Or you authenticate, like this:

の下にコードが載っているが、バージョン変更されたのか
コードが微妙に違っているので
http://dotinstall.com/lessons/tw_connect_php_v2/21907
の部分を使ってみた

twitter で認証されると
GETで 'oauth_verifier' が渡される
if (! isset($_GET['oauth_verifier'])) {
なので、もし渡されないならという意味

$auth_url = $cb->oauth_authorize();
header('Location: ' . $auth_url);
die();
では、 twitter 認証画面に飛ばしている

その場合、スコープ内の処理が実行される

認証できたなら
else のスコープの中の処理が実行される

'oauth_verifier'
は認証完了したときに返ってくる値

$_SESSION['oauth_token'] = $reply->oauth_token;
$_SESSION['oauth_token_secret'] = $reply->oauth_token_secret;
はユーザが必要なAPIにアクセスするのに必要

$cb->setToken($reply->oauth_token, $reply->oauth_token_secret);
でユーザが必要なAPIを使えるようにする処理

$me = $cb->account_verifyCredentials();
でユーザ情報をみることができる

ここまでできたら
var_dump($me);
で格納できているか確認

account_verifyCredentials();

codebird.php での twitter API を使ったアクセス方法

詳しくは
https://github.com/mynetx/codebird-php
3. Mapping API methods to Codebird function calls
を参考に

スポンサーサイト



テーマ : プログラミング
ジャンル : コンピュータ

ツイッターでログインするWebサービス作成 

ホーム画面の作成

http://dotinstall.com/lessons/tw_connect_php_v2/21905
を参考に

/var/www/twitter/へ
index.php を作成

まず、
reqiure_once('config.php')l
require_once('codebird.php');
で必要なファイルの読み込み

このとき、注意点として
config.php

codebird.php

index.php とおなじディレクトリにおくこと
これを間違えるとファイルパスが違っていて
画面が真っ白になるので注意

ファイルの有無は
Linux なら ls コマンドをつかって確認可能

もし、別の場所におきたいのなら
require_once() のパスを変えること


これは、java の import
C の include と同じ

次に
HTMLタグを使って画面を作成

普通のHTMLと変わらないけど
a要素で
<a href="logout.php">ログアウト</a>
というようにログアウトする処理をつけること

そして、つぶやきのリスト表示のため
<ul>
<li></li>
</ul>
で場所を指定しておく

ファイルの編集はテキストエディタではなく
Eclipse を使用
ただ、あまり多くのプロジェクトが開いていると面倒なので
Ctrl[ + Shift] + W [全て]閉じる
で一旦今つかっているのを消しておきます

Eclipse と追加プラグインにより、
コードの記述が楽になるし、タイプミスが減るので
便利ツールは活用することをおすすめします

Eclipse にはショートカットキーがあり
これを知っていると作業効率があがります

http://dotinstall.com/lessons/tw_connect_php_v2/21906
を参考にログイン画面を作成

セッションを使うので、コードを追記
session_start();
でセッション開始

そして、ログイン判定をif で実装
ログインしているなら me に格納します

if (empty($_SESSION['me']))
は me の中身が空ならという意味

header('Location: '.SITE_URL.'login.php');

SITE_URL は config.php で
定義した定数で、サイトのURL
これは公開環境じゃなくて
ローカルIPでもOK

PHPでは . で java script の+連結みたいに使えるので
SITE_URL.'login.php'
http://192.168.10.248/login.php
という意味になる


これができたら、次にログイン画面作成

最初からつくるのは面倒なので
cp base.html login.php
でファイルをコピーし
内容を編集します

変更点として
a要素で
ログインするため、いろいろな処理をするのは
callback.php になっているので
<a href="callback.php">twitter でログイン</a>
というように、ファイルを指定します

テーマ : プログラミング
ジャンル : コンピュータ

twitter アプリのための設定

twitter アプリのための設定

#04 アプリの設定をしよう
http://dotinstall.com/lessons/tw_connect_php_v2/21904
に書かれているソースを
/var/www/twitter/config.php に追記していく

必要なものを定数として格納する

定数はPHPでは define() で行う
左が自作の定数
右がその内容
となる

つまり、メンテを考えると、非常に効率的
右の値を変えるだけで、簡単に変更ができる
define('DSN', 'mysql:host=localhost;dbname=dotinstall_tw_connect_php');
では
ホスト名、DBの名前になる
今回なら
ホスト名 = localhost
DB名 = dbname=dotinstall_tw_connect_php
どちらも sql の設定で行ったもの

define('DB_USER', 'dbuser');
これはユーザ名
grant all on dotinstall_tw_connect_php.* to dbuser@localhost identified by '**********';
で作成した
@localhost の前にある名前

また
define('DB_PASSWORD', '**********');
はパスワード
*********は任意のものに変えてある

define('CONSUMER_KEY', '********************');
define('CONSUMER_SECRET', '*********************************');
これらは、
twitter のアプリの設定画面の
Details のところに載っている

define('SITE_URL', 'http://dev.dotinstall.com/tw_connect_php/');
はサイトURL

error_reporting(E_ALL & ~E_NOTICE);
はエラー関連の表示

session_set_cookie_params(0, '/tw_connect_php/');
はセッション範囲の指定

テーマ : プログラミング
ジャンル : コンピュータ

twitter アプリのためのDB作成

twitter アプリのためのDB作成

twitter アプリのユーザ情報を格納するので
DBを作成する

開発環境は Ubuntu12.04 64bit

すでに apache2 と PHP はインストール済みなので
MySQL を入れる

sudo apt-get install mysql-server
でインストールできる

install しているときに root 権限のパスワードを設定するのでパスワードを入力
この root は Ubuntu のではなくて
MySQL の root 権限

これで準備できたので
#03 データベースの設定をしよう
http://dotinstall.com/lessons/tw_connect_php_v2/21903
を参考にDBの作成


今回、アプリ作成のためディレクトリを作成
/var/www/twitter としてみた

前回ダウンロードした圧縮ファイルを
ここに解凍して置く
codebird-php-master/src/codebird.php
が使うファイルなので、
codebird.php

/var/www/twitter/
へコピーしておく

そしたら、DB の作成
動画では、PHPファイルを作成し
その中のものから コピペしているけど
sql ファイルにまとめておいて実行するということもできるので
今回はこの方法を使います

config.php のSQL部分のコピペを行い
vim setup.sql で sql ファイルを作成し
貼り付け
そのときにパスワードの
********************
を任意のパスワードに変更し保存

mysql -u root -p < setup.sql
を実行すれば、sqlファイルの内容を実行することができます


作成できているか確認するには
mysql -u root -p
で mysql にログインして

show databases;
でDBを確認して
dotinstall_tw_connect_php
があるのを確認

そして
use dotinstall_tw_connect_php
で使用DBを切り替えて

desc users;
でテーブルの中身を確認

これでOKなら
exit で mysql を抜けます

テーマ : プログラミング
ジャンル : コンピュータ

twitter でログインする webサービス

twitter でログインする webサービス

必要なものが
HTML
CSS
PHP
MySQL

Codebird-PHP
https://github.com/mynetx/codebird-php
これは ZIP ボタンをクリックして
圧縮ファイルをダウンロードして解凍して使う

必要なものができたら、次は
twitter アプリの登録

これは
https://dev.twitter.com/
へアクセスし
sign in して登録する

sign in したら、自分の twitter アイコンをクリックして
My Applications をクリックし
create a new application をクリック

必要な項目が英語だけど
name にはアプリの名前
ただし、twitter という名前をいれるのはダメ

description にはアプリの解説

web site には
自分サイトのURL

callbackURL には
自分のサイトURLに
callback.php をつければOK

規約を読んでOKなら
yes I agree にチェックをいれて

よみにくい文字を入力すれば登録完了

もし、間違えても
登録アプリの Settings タブで
修正が可能なので、そんなに失敗を気にしなくてもいい

テーマ : プログラミング
ジャンル : コンピュータ

最新記事
検索フォーム
GREEハコニワ攻略サイト
リンク
カテゴリ
月別アーカイブ
フリーエリア
最新記事
FXプライムレート
最新コメント
最新トラックバック