Twitter APIを使用するためには、下記のキーを取得する必要がある。
- Consumer key
- Consumer secret
- Access token
- Access token secret
これらのキーを取得する手順について記載する。
なお、この手順は記事を執筆した2014年7月13日現在のもの。
Twitter APIを使用するためには、下記のキーを取得する必要がある。
これらのキーを取得する手順について記載する。
なお、この手順は記事を執筆した2014年7月13日現在のもの。
Sails.jsでコントローラを作成する。
動作環境
・Windows7 Ultimate Service Pack 1
・Node.js 0.10.28
・Sail.js 0.9.16
参考にしたのはこのサイト。
Sails.jsでログをファイルに出力する方法を記載する。
Sails.jsのログでは、ログはコンソールに出力するだけで、ファイルには出力されない。
ファイルに出力するために、ここではlog4jsを使用する。
動作環境
・Windows7 Ultimate Service Pack 1
・Node.js 0.10.28
・Sail.js 0.9.16
・log4js 0.6.14
Node.jsのフレームワークSails.jsを、Eclipseで実行する方法を記載する。
動作環境
・Windows7 Ultimate Service Pack 1
・Eclipse 4.3 Kepler Pleiades All in One
Node.jsのフレームワークExpressを、Eclipseで実行する方法を記載する。
動作環境
・Windows7 Ultimate Service Pack 1
・Eclipse 4.3 Kepler Pleiades All in One
WindowsにNode.jsをインストールし、Eclipseで実行する方法を記載する。
動作環境
・Windows7 Ultimate Service Pack 1
・Eclipse 4.3 Kepler Pleiades All in One
インストールするものは以下。
Node.jsを公式サイトからダウンロードする。
サイト中央の「INSTALL」から自環境に適したインストーラをダウンロードする。本稿執筆時、Node.jpの最新バージョンは「0.10.28」であった。
ダウンロードしたインストーラを起動し、インストールを実施する。ソフトウェアの使用許諾契約やインストール先選択の画面が表示されるが、画面の指示に従って先へ進んでいく。
「Completed the Node.js Setup Wizard」と記載された画面が表示されれば、インストールは完了。
Eclipseは公式サイトからダウンロードすると言語が英語なので、日本語化されたPleiadesからダウンロードする。
Eclipse 日本語化 | MergeDoc Project
ここでは、Eclipse 4.3 Kepler Pleiades All in Oneをダウンロードした。
ダウンロードしたファイルは圧縮ファイルなので解凍する。解凍後のフォルダを格納する場所はどこでもよい。解凍後、「pleiades\eclipse\eclipse.exe」を実行すると、Eclipseが起動する。
EclipseでNode.jsを動作させるために、Nodeclipseプラグインをインストールする。
Eclipseのメニュー「ヘルプ」→「新規ソフトウェアのインストール」からソフトウェアのインストール画面を開く。
作業対象の欄に下記のURLを入力する。
http://dl.bintray.com/nodeclipse/nodeclipse/
表示された項目全てをチェックし、「次へ」ボタンを押して進む。
インストール詳細、ライセンスのレビュー画面が表示されるので、指示に従ってインストールを実施する。
セキュリティ警告の画面では「OK」を押す。
インストール完了後、Eclipseを再起動すると、Nodeclipseを使用できる状態となる。
インストールが完了すると、Node.js用のプロジェクトを作成できるようになる。
Eclipseのメニュー「ファイル」→「新規」→「プロジェクト」から新規プロジェクト画面を開く。
「Nodeclipse」の項目の中の「Node.js Project」を選択し、「次へ」ボタンを押して進む。
「New Node.js Project」画面では、プロジェクト名を入力する。
ここでは、「SampleNodeJS」とした。
「Template to use」の項目では、「Hello World」を選択する。
「完了」ボタンを押すと、プロジェクトの作成が完了する。
自動生成されたファイルのうち、「hello-world.js」にWebサーバを起動するコードが書かれている。
localhostの1337ポートでサーバを起動し、「Hello World」と表示するようになっている。
var http = require('http');
http.createServer(function handler(req, res) {
res.writeHead(200, {'Content-Type': 'text/plain'});
res.end('Hello World\n');
}).listen(1337, '127.0.0.1');
console.log('Server running at http://127.0.0.1:1337/');実際に実行してみる。
メニュー「実行」→「実行」→「Node Application」を実行すると、コンソールに「Server running at http://127.0.0.1:1337/」と表示される。
これで、サーバが起動した。
ブラウザを開き、サーバにアクセスする。ソースコード通りだと、
にアクセスすればよいが、
http://localhost:1337/でも同じ。
ブラウザ上には、「Hello World」とだけ表示される。
Node.jsの実行に成功。
CakePHPでマルチパートでないHTTP-Postリクエストを受信する方法を記載する。
動作環境Webで実装方法を検索してみたところ、ピュアPHPではすぐに見つかったのだが、CakePHPではなかなか見つけることができなかった。
Webで検索するキーワードが悪かったのかもしれない。
HTTPクライアントはAndroidでHttpURLConnectionを使用した。
サンプルコードはこちら。
androidからAsyncTaskLoaderでHTTP-Post通信をする
ピュアPHPでPostリクエストのデータを取得する場合は、file_get_contentsメソッドを使用する。
引数に「php://input」を指定する。
リクエストデータは戻り値で取得できる。
<?php
// 受信データ格納
$data = file_get_contents("php://input");
// レスポンス
echo "POST DATA RECEIVED. data[".$data."]"
?>
CakePHPでPOSTデータを取得する場合、
CakeRequest::data[‘key’]
などでデータを取得するが、マルチパートでないPOSTデータの場合、取得できない。
上記の「key」を「php://input」としても取得できない。
といっても、CakePHPのどこかで「php://input」からPOSTデータを取得している箇所があるはずなので、CakePHPのコードを「php://input」で検索してみる。
すると、CakeRequest::_readInputメソッドで「php://input」を使用していた。
_readInputメソッドはprotectedなので、さらに_readInputメソッドを使用している箇所を検索してみる。
_readInputメソッドを使用している箇所は2カ所あったが、CakeRequest::inputメソッドがpublicだったので、ここからPOSTデータを取得できそう。
というわけで、CakeRequest::inputメソッドを使用する。
inputメソッドは引数にデコード用コールバックを指定できるが、省略可能引数となっているため、今回は省略する。
リクエストデータは戻り値で取得できる。
下記のサンプルでは、取得したリクエストデータを、そのままレスポンスデータとして送信している。
<?php
class PostSamplesController extends AppController {
public function index() {
if($this->request->is('post')) { // Post通信
// 受信データ格納
$input_data = $this->request->input();
// レスポンス
$this->response->body($input_data);
return $this->response;
}
}
}
?>