head

2013年8月27日火曜日

GCM でマルチキャスト メッセージ送信方法(JSON形式)、(PHP) 2013-08-27

夏ですね。お盆過ぎてもまだ暑い、、

さて、PHPで
APサーバからGCM送信時に、マルチキャスト メッセージ(複数配信、JSON形式)
する方法です。最大= 1,000件までみたいですけど。

ぐぐると単発(テキスト形式)はあるけど、マルチは少なかった気がしますので、メモ。

GCMの申請、register(登録IDの確定)などは、他のサイトをご参考ください。
送信処理のみ記載です。

$apiKeyは、取得したキー使ってください、curl使ってますけど。
下記はファイルから、複数ID取得してます。($ROOT/dat)
postするパラメータなどは、下記のサイト様など参照頂ければと思います。
(いろいろ設定できるみたいです。)
===============================
<?php

$url = 'https://android.googleapis.com/gcm/send';

$message = 'Hello, test-GCM!!';

$apiKey = "xxxx";

//heaer
$header = array(
  'Content-Type: application/json',
  "Authorization: key={$apiKey}",
);

    $registerDir =  $_SERVER['DOCUMENT_ROOT'] . "/dat";
$fileList = scandir($registerDir);

//    $ict =count($fileList);
    $i_reg=0;
    $items = array();
    foreach($fileList as $s_fnm){
        if(!is_dir($s_fnm)){
     $regId = file_get_contents($registerDir . "/{$s_fnm}");
 $items[$i_reg] = $regId;
 $i_reg += 1;
        }
    }
// print(json_encode($items) );
       //post-data
$post_list = array(
'collapse_key' => 'update',
'time_to_live' => 108,
'data'         => array('message' => $message),
'registration_ids' => $items,
);

    $curl = curl_init($url);
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($curl, CURLOPT_FAILONERROR, 1);
    curl_setopt($curl, CURLOPT_FOLLOWLOCATION, 1);
    curl_setopt($curl, CURLOPT_POST, TRUE);
    curl_setopt($curl, CURLOPT_HTTPHEADER, $header);
    curl_setopt($curl, CURLOPT_POSTFIELDS, json_encode($post_list) );
    curl_setopt($curl, CURLOPT_TIMEOUT, 5);
 
$ret = curl_exec($curl);
var_dump($ret);
?>
===============================
実行すると、複数push配信できるはず!!(たぶん)

*)参考までに、送信の前の、登録ID保存。(Androidからの送信ID保存)
===============================
<?php
if (!isset($_POST['regId'])){
 print("-1");
 exit;
}

$registerDir =  $_SERVER['DOCUMENT_ROOT'] . "/dat";

$regId = $_POST['regId'];
$filename = md5($regId). ".txt";

file_put_contents($registerDir."/{$filename}", $regId);
?>
===============================


ご参考のサイトさま:
http://www.techdoctranslator.com/android/guide/google/gcm/gcm

http://www.atmarkit.co.jp/ait/articles/1302/12/news029.html

*) それでは、また会いましょう。

2013年8月11日日曜日

Mac OS 10.7.5に、Node.js, WebSocketをインストールしてみる。 2013-08-11


お盆の時期ですね。それにしても暑い、、

さて、
WebSocketを試したかったので。
Node.jsを Mac(10.7.5)にインストールしてみました。
若干はまったので、メモしておきます、


[1] Node.js インストール

1) http://nodejs.org/ で[INSTALL] ボタン押す。
*) 今回は、pk形式。

2) node-v0.10.15.pkg を実行。ダイアログでるので
 ひたすら、次に進む。
 完了。

3)確認。
コンソールから、
node --version
など実行。
$ node --version
 v0.10.15
version出ればOK

[2] 「npm」のインストール
ぐぐると、Ubuntu 系の説明はあるが、Macは少ない気がした。

1) apt-getで、curlのセットアップ
$ sudo apt-get install curl
 > macは、apt-getがない事に気づく(汗、)

2) macの場合、fink で対応するらしいので、
このへん参考。
 http://d.hatena.ne.jp/haronoid/20130503/1367581401
時間かかったけど、終了。しかし、 すでにcurlがインストール済だった事に気づく(汗、)
*) fink は不要かもしれません。

3) npm setup
 参考記事には、下記コマンドの記載が多いが、macだとこれエラーなりました。
 $ curl http://npmjs.org/install.sh | sh
 回避策は、ブラウザで 「http://npmjs.org/install.sh」入力して、ローカル保存。
 (wget でも良いかも。)

 $sh install.sh ,実行してOK

4) npmでのインストール手順、
$ npm install 【パッケージ名】
 npm install -g [pkg]  が良いかもしれません、 -g は、グローバル領域?。

*) この後、コンソールの再起動が必要だったかも、たぶんパスの関係で

[3] WebSocket (socket.io)
 1) socket.io入れてみました。
 npm install -g socket.io
 2) express フレームワークもついでに、追加。
 npm install -g express

*) WebSocketとかで、ぐぐると。サンプルのプロジェクトとか、
 数件でてきましたので、動かしてみました。

[4] 実行編
 このへん参考(おもしろかった、)
 http://www.atmarkit.co.jp/ait/articles/1210/10/news115.html
 expressの chatプロジェクトで、複数ブラウザ立ち上げても、同一メッセージ(chat)
 がリアルタイムにpush配信される。(外部クラウドでも、はやいのか? )


*)参考サイトさま
http://www.atmarkit.co.jp/ait/articles/1102/28/news105.html
http://www.tettori.net/post/293/

*) Node.js はデメリットもありそうですが、いろいろ試してみると
 面白そうですね。
 それでは、また会いましょう


google colaboratory お試し編 、GPUも使える機械学習の環境構築

前回続き、機械学習の関連となります。 開発環境まわりの内容となり。先人様の情報を元に調査しました。 google colab(google colaboratory) を試してみました。機械学習系の いくつかのライブラリがインストール済みで、 クラウド上で、ある程度機械学...

AD-parts

Shop
Bluetooth搭載
ベース基板

Social