電気ウナギ的○○

About Home

Perl で Google Cloud Messaging サーバプログラムを書いてみた

shinoda (2013年5月15日 01:28)
Android 端末へのメッセージのプッシュをする場合のプログラムね。

GCM サービスを使うための API キーの入手の手順とかは、
http://www.techdoctranslator.com/android/guide/google/gcm/gs
を参照。(日本語訳です)

で、Google が用意しているサンプルプログラムをクライアントで動かして、メッセージを実際に端末に向けてプッシュするところまでテストしてみたんだけど、ざっとググってみたところ、サーバ側のプログラムを Perl で書いてる例が無かったので、簡単なものを作ってみた。

まず、クライアント(Android 端末上のアプリ)から regID を取得するプログラム。
(クライアントで、SERVER_URL にセットしている URL)

・・・っても、POSTで送られてくるデータをファイルに書き出してるだけだけどな。

#!/usr/bin/perl
#
# gcm_demo.cgi
#

read (STDIN, $postdata, $ENV{'CONTENT_LENGTH'});

open OUT, ">>/tmp/gcm_test.txt";
print OUT "POST $postdata\n";
close(OUT);

print "Content-type: text/html;charset=UTF-8\n\n";
print "DEMO";

exit();

これで、Android 側でクライアントを実行すると、

# cat /tmp/gcm_test.txt
POST regId=APA91bHi1fbAcCk1qwCMu6jO4IlJuAtXXXXXXXX_hhyK7atS6i6G_GuhtprPGroMnZkNQvKTWuAPxXXXXXXXXTLv-mKpIi_Ek9CpDPWvJQ79IZjmyXXXXXXXXttIgKOcf-GTcHRC8VmND3UpXXXXXXXXvfC4bw5hJw

という具合に regID(端末識別番号みたいなもん)が取得出来る。

regID が取得出来たらメッセージ送信プログラムにセット。

#!/usr/bin/perl
#
# gcm_message_send.pl
#
use LWP;

$ua = LWP::UserAgent->new;
$res = $ua->post(
"https://android.googleapis.com/gcm/send",
{
'registration_id' => "APA91bHi1fbAcCk1qwCMu6jO4IlJuAtXXXXXXXX_hhyK7atS6i6G_GuhtprPGroMnZkNQvKTWuAPxXXXXXXXXTLv-mKpIi_Ek9CpDPWvJQ79IZjmyXXXXXXXXttIgKOcf-GTcHRC8VmND3UpXXXXXXXXvfC4bw5hJw",
'collapse_key' => 'update',
'data.message' => "これはサーバからのテストメッセージです",
},
"User-Agent"    => "NAF Perl Program/0.1",
"Authorization" => "key=AIzaSyDsXXXXXXXX9Lyazw0NYRVrXXXXXXXXHk",
"Content-Type"  => "application/x-www-form-urlencoded;charset=UTF-8"
);

print $res->content;

これを実行したら、

$ ./gcm_message_send.pl
id=0:13685xxxxxxxx632%921cxxxxxxxx38c9

という具合に、https://android.googleapis.com/gcm/send がちゃんとメッセージ ID を返してくるので、ばっちりだろう。

必要最小限の一番シンプルな例ってことで(笑)

Perl 使いの皆様へ。参考まで。

電気ウナギ的○○

電気ウナギ的○○

About Back

コメント(0)

電気ウナギ的○○

電気ウナギ的○○

About Back

トラックバック(0)

トラックバックURL: https://blog.netandfield.com/mt/mt-tb.cgi/2478

電気ウナギ的○○

About This Site

電気ウナギ的○○
岩国在住。広島で働く超零細IT企業社長のいわゆる社長日記。
何か、酒と食い物のことばかり書いているようで・・・お察しのとおり、肥満体です:-)


2011/06/24
iPhone用サイト公開

Create with jQuery, jQTouch.


CLOSE