iPod touchでPush Notification Serviceによる通知を活用するためのサービス

im.kayac.com

サービス登録後、iPod touch/iPhoneに専用アプリを導入し紐付けることでPush Notification通知が有効になる。
APIが公開されており、任意のプログラムから叩くことで自分宛の通知を自由に送ることが出来る。

#!/usr/bin/python
# -*- coding: utf-8 -*-

import hashlib
import urllib

IMKAYACCOM_USER = "YOUR_USERNAME"
IMKAYACCOM_SECRETKEY = "YOUR_SECRETKEY"

## im.kayac.com

def post_imkayaccom(message, handler=None):
    # handler: "Custom URL Scheme" / e.g. http://***, skype:***
    url = "http://im.kayac.com/api/post/" + IMKAYACCOM_USER
    signature = hashlib.sha1(message+IMKAYACCOM_SECRETKEY).hexdigest()
    opt_dict = {"message": message, "sig": signature}
    if handler is not None: opt_dict.update({"handler": handler})
    opt = urllib.urlencode(opt_dict)
    res = urllib.urlopen(url, opt)
    print res.read()

msg = u"こんばんは、奥さん。".encode("UTF-8")
post_imkayaccom(msg, "http://komachi.yomiuri.co.jp/")

notifo

登録、iPod touch/iPhoneに専用アプリ導入、と使い方はim.kayac.comとほぼ同じ。

im.kayac.comと違い、サービスに登録すると、指定時間に通知するサービスや株価が指定の値になると通知するサービス、Twitterでreplyがあると通知するサービスなどを利用することが出来る。Boxcarというアプリもプラグインを導入することで同様のPush Notificationを実現しているが、notifoはWeb上でサービスの設定(有効/無効、時間/しきい値指定など)をする。また、通知ログもサービス上に蓄積される。

APIの使い方は、im.kayac.comと違うところはBASIC認証をする必要があるところくらい。

#!/usr/bin/python
# -*- coding: utf-8 -*-

import urllib
import urllib2

NOTIFO_USER = "YOUR_USERNAME"
NOTIFO_API_SECRET = "YOUR_API_SECRET"

def post_notifo(message, handler=None, label=None, title=None):)
    # handler: "Custom URL Scheme" / e.g. http://***, skype:***
    # label: name of service
    # title: title of event
    url = "https://api.notifo.com/v1/send_notification"
    opt_dict = {"msg": message}
    if handler is not None: opt_dict.update({"uri": handler})
    if label is not None: opt_dict.update({"label": label})
    if title is not None: opt_dict.update({"title": title})
    opt = urllib.urlencode(opt_dict)
    req = urllib2.Request(url, opt)
    basic = "Basic %s" % ":".join([NOTIFO_USER, NOTIFO_API_SECRET]).encode("base64").strip()
    req.add_header("Authorization", basic)
    res = urllib2.urlopen(req)
    print res.read()

msg = u"こんにちは、二次元。".encode("utf-8")
post_notifo(msg, "http://jun.2chan.net/", label="Python", title="I sent it!")

GitHubには、notifoによるPush Notification機能が付いたらしい

APIが公開されているということで、インターネット上の何かの変化に限らず、Arduino(センサ)と組み合わせたりWebカメラと組み合わせたり、現実世界の様々なものの変化を(iPod touchを通して)自分に伝えるために適した道具になる。昔のCMに、実家の母が使うポットにセンサが取り付けてあり、使用状況を離れた場所の息子が携帯電話を通して知る、というような商品の紹介があったが、まさにああいう使い方も良いだろう。

過去に皆が夢見たユビキタス環境のイメージ映像では、ウェアラブルバイスとしてヘッドマウントディスプレイが人の顔に装着されていて、何か(友達が近くにいる、友達が呼んでいる等)あれば目の前にメッセージが通知されていた。ゲームをしていてもスリープ状態にしていても通知がやってくるPush Notificationはこの環境の実現の第一歩だ。