プロトタイプ用に pebble.js をいじり始めたところです。サーバーに接続し、ユーザー データ (ログイン情報) をペブルからサーバーに送信してハンドシェイクし、サーバーからペブルにデータを送り返す必要があります。プロトタイピングが簡単なので、pebble.js を使用しています。
現在、接続をセットアップするために ajax ライブラリ ( http://developer.getpebble.com/docs/pebblejs/#ajax ) を使用しています。次のコードがあります。
ajax(
{
url: URL,
method: 'post',
type: 'json',
data: {
auth : 'test'
}
},
function(data) {
// Success!
console.log(JSON.stringify(data));
},
function(error) {
// Failure!
console.log('no response');
}
);
サーバー上の PHP では、apache_request_headers(); によって完全なヘッダー情報を取得します。echo json_encode(apache_request_headers()); で小石に送信します。
これにより、console.log(JSON.stringify(data)) が出力されます。
{"Host":"192.168.0.113","Content-Type":"application/json","Accept":"*/*","Connection":"keep-alive","Cookie":"v2ci_session=55MmpPmzb2cvBWiq3VNgneHexYzBtIFr46Ycb94s2KNKwmnz%2FStJq3euLpUSuBmbsKmKou2915ZR5Cp%2FA7xXnK7FO5EHcnem3Xi6gLpAJPXCF51sQxVQn%2BP1fAmlDqEzSnZEVkbhAO3LkZzALdnjzUc2SPyRCdVx70xAnkohQVH%2BuaU7qZtlCtYwJ7MYQqwa1%2BXuPfw9Vb7vgduYqoWMB%2FVIab5uDPe1KnIxZ08reU1PHVTWXcXXyGCEwmYfCYDkXZSIH%2FcnM%2B4oKAu3kEalGX9jxEVvC6VKz4mAdg7O5Q4Ns%2BEKyTR5VqrpisfZcY2VWOX8ipjCuYMTTosY9Lm%2F0qSpU4P%2B2ObuXCbsJIYviK2EsQqj6%2BWNo0L3DEK6L2N7","User-Agent":"PebbleApp/20141016231206 CFNetwork/711.1.12 Darwin/14.0.0","Accept-Language":"nl-nl","Accept-Encoding":"gzip, deflate","Content-Length":"6"}
ご覧のとおり、リクエスト内でデータは送信されません。
リクエストでデータが送信されない理由を知っている人はいますか?
解決済み
pebblejsのgithubで解決できました。同じ問題を抱えている人向け:「タイプ」が「json」に設定されている場合、ajax ライブラリは応答が json であることを期待するだけでなく、投稿されるデータも json として投稿されます。このデータを PHP の配列に収集する場合は、次のコードを使用します。
json_decode(file_get_contents('php://input'), true);