GoogleChrome の dev channel でWebRTCが使用できるようになったみたい
WebRTC now available in the Chrome dev channel
http://www.webrtc.org/blog/webrtcnowavailableinthechromedevchannel
使用方法
Google Chromeのバージョンをdev channelでインストールして
"--enable-media-stream" をつけて起動。
近いうちに試してみたいです。
CakePHP2.0系+TwitterAPIでログイン処理を作成
CakePHP2.0系を最近使い始めたので、CakePHP+TwitterのOAuth認証について紹介します。
使用したもの
CakePHP2.0.4
OAuth consumers for CakePHP - by cakebaker
Bootstrap, from Twitter
OAuthライブラリを設置
app/Vendor/Oauth/ に設置
2.0系はディレクトリ名の先頭が大文字なので注意
OAuthライブラリの修正
Vendor/OAuth/oauth_consumer.php
App::import('Core', 'http_socket');
↓
App::uses('HttpSocket', 'Network/Http');
APIキーを記述
キーについては各自で取得
Twitter Developers
app/Config/bootstrap.php
define('TWITTER_CONSUMER_KEY', '取得したCONSUMER KEY'); define('TWITTER_CONSUMER_SECRET', '取得したCONSUMER SECRET');
コントローラの作成
AppController
/app/Controller/AppController.php
<?php class AppController extends Controller { public $helpers = array('Html', 'Js' => array('common'), 'Session'); public $components = array('Session'); protected $is_login = false; public function beforeFilter() { $this->is_login = $this->isLogin(); if ($this->is_login) { $token = $this->getToken(); $consumer = $this->createConsumer(); $profile = json_decode($consumer->get($token->key, $token->secret, 'https://api.twitter.com/1/account/verify_credentials.json')); $this->set('profile', $profile); } $this->set('is_login', $this->is_login); return parent::beforeFilter(); } public function isLogin() { $token = $this->getToken(); if ($token->key && $token->secret) { return true; } return false; } public function getToken() { $token = new stdClass; $token->key = $this->Session->read('Twitter.accessToken.key'); $token->secret = $this->Session->read('Twitter.accessToken.secret'); return $token; } protected function createConsumer() { return new OAuth_Consumer(TWITTER_CONSUMER_KEY, TWITTER_CONSUMER_SECRET); } } ?>
TopController
/app/Controller/TopController.php
<?php App::import('Vendor','oauth', array('file'=>'OAuth'.DS.'oauth_consumer.php')); class TopController extends AppController { public $uses = array(); /** * トップ */ public function index() { $consumer = $this->createConsumer(); if ($this->is_login) { $token = $this->getToken(); } } /** * サインイン */ public function sign_in() { $consumer = $this->createConsumer(); $request_token = $consumer->getRequestToken('https://api.twitter.com/oauth/request_token', 'http://xxxxxxxxxx/top/twitter_callback/'); $this->Session->write('twitter_request_token', $request_token); //セッションを保持していない場合はTwitter認証へ if(!$this->Session->read('Twitter.accessToken.key')){ $this->redirect('https://api.twitter.com/oauth/authorize?oauth_token=' . $request_token->key); } else { //認証済みフラグを渡してリダイレクト $this->redirect('http://xxxxxxxxxx/top/twitter_callback/1/'); } } /** * コールバックAPI * @param $logged_in ログインフラグ */ public function twitter_callback($logged_in = 0) { $consumer = $this->createConsumer(); if ($logged_in == 0) { $request_token = $this->Session->read('twitter_request_token'); $access_token = $consumer->getAccessToken('https://api.twitter.com/oauth/access_token', $request_token); $this->Session->write('Twitter.accessToken.key', $access_token->key); $this->Session->write('Twitter.accessToken.secret', $access_token->secret); } else { $access_token->key = $this->Session->read('Twitter.accessToken.key'); $access_token->secret = $this->Session->read('Twitter.accessToken.secret'); } //トップページへ $this->redirect('http://xxxxxxxxxx/top/'); } } ?>
Twitter Bootstrapを使用してビューを作成
展開したディレクトリ内にあるjs/を
app/webroot/js に、
bootstrap.css を
app/webroot/css に設置
レイアウトを作成する
その他
Warning: _cake_core_ cache was unable to write 'cake_dev_ja' to File cache in / ~~
と上部に表示される場合
app/tmp/ 以下のディレクトリに書き込み権限を与えてあげると解消します。
Javascriptメモ
Javascriptの変数でハマったことの備忘録です。
var hoge = "abc"; function fuga() { alert(hoge); //出力A hoge = "def"; alert(hoge); //出力B } fuga();
実行した出力結果は、Aが "abc" Bが "def"
しかし、下記のような書き方だと
var hoge = "abc"; function fuga() { alert(hoge); //出力A var hoge = "def"; alert(hoge); //出力B } fuga();
出力Aが undefined Bが "def" になる。
不思議だ。
WowzaMediaServer for EC2 導入編@Flex勉強会
7/9(土)にFlex勉強会を開催しました。
そのとき使用した資料を公開します。
女性もスマホを使ってみよう
最近女性にもスマートフォン利用者が増えているようなので、
女性向けスマホアプリを紹介しているサイトをまとめました。
アプリ探しの参考になるといいと思います。
アンドロイドール
“女の子視点”のアンドロイドアプリレビューサイト
http://androidoll.com/
スマホガール
女子で作る女子のためのAndroidレビューサイト
http://spgirl.jp/
android-girls
女性向けおすすめ人気アンドロイドアプリを掲載。女子必見!!
http://android-girls.com/
アメーバGG
http://prom.ameba.jp/amebagg-project/
ガールズアプリナビ
読者モデルが女の子目線でiphone/androidアプリを紹介する口コミレビューサイト
http://fashionistablogger.jp/g-applinavi/
InternetExplorer9でもマウスジェスチャーを使う方法
Mouse Gestures for Internet Explorer
http://www.ysgyfarnog.co.uk/utilities/mousegestures/
インストール完了後は、
メニューバーから ツール → Mouse Gestures...
でジェスチャーの設定を行うことができます。
Windows環境でmemcachedを使ってみる
なんとなくWindows版memcacheネタを見かけたので触ってみたときのメモ
PHPでmemcacheを使うための方法です。
PECLでMemcacheを使用します。
■導入方法
以下サイトからmemcached実行ファイルをダウンロード
http://code.jellycan.com/memcached/
win32 binary: memcached-1.2.6-win32-bin.zip をダウンロード
展開してインストール
ファイルを設置
c:\memcached\memcached.exe
インストール
c:\memcached\memcached.exe -d install
(Windows7環境では、コマンドプロンプトを管理者権限で実行しないと処理が失敗しました。)
サービス開始
c:\memcached\memcached.exe -d start
(サービスにmemcachedServerが登録されていると思います)
XAMPPの設定
下記ファイルをネットから探してダウンロード
php_memcache-cvs-20090703-5.3-VC6-x86.zip
(このバージョンだと動作しました。PHP5.3)
php.ini PECL の項目に下記を追加
extension=php_memcache.dll
Apache再起動
以上で完了です。
PHPマニュアルのサンプルコードで動作確認
http://php.net/manual/ja/book.memcache.php