新機能!!facebookアプリケーションからユーザーへの通知を試してみた

先日のdeveloper blogで、facebookアプリケーションからユーザーへの通知機能が発表されていたので試してみました。

http://developers.facebook.com/blog/post/2012/08/31/reach-users-1-1-with-the-notifications-api/

新機能の概要

今までfacebookアプリケーションからユーザーへのコミュニケーション方法はありませんでした。
そのため、どのアプリもユーザーになり替わって、ウォールに投稿したり、アプリリクエストを送ったりということをしていましたが、今回の新機能によりアプリケーション→ユーザーの一方通行ですが、直接コミュニケーションを取ることができるようになります。

というわけで試してみた

公式のdocumentを見ると、方法は至って簡単でしたが、いくつかポイントがあるのでまとめてみました。

1. 使用できるのはfacebook上のアプリのみ

このAPIを使用できるのは、canvasの設定をしているapps.facebook.comドメインに設置されているfacebookアプリのみで、webサイトと連携するタイプや、ネイティブのアプリ等は使用できません。

canvasの設定をしていないアプリケーションでAPIを実行してみると以下の様にエラーが返ってきます。

(#200) Only web canvas apps can send app notifications

2. UserTokenではなくApplicationToken

APIを実行するために必要な値はUserTokenではなく、ApplicationTokenです。

UserTokenとは、OAuth認証をした上で発行されるユーザー固有の文字列のことです。
普段はこのTokenを用いて、ユーザーになり替わりウォール投稿などを実行しています。

ApplicationTokenとは、facebookアプリを作成した時点で発行される固有の文字列であり、以下のルールで定められています。

AppID|AppSecret

ユーザーになり替わるのではなく、アプリケーションとしてユーザーに通知を送るため、使用するのはアプリケーション固有のTokenなのです。

パラメータは3つ
  • href: 通知をユーザーがクリックした際の遷移先。アプリケーションURLの相対パスを設定する。
  • template: 通知の内容。ユーザーIDを含めればユーザー名を表示することも可能。
  • ref:よくわからない。なくても実行できた。
いざ実行

適当にcanvasを設定してあるアプリケーションを作成して、通知APIを試してみました。

POST https://graph.facebook.com/hiroki.itani/notifications?
        access_token=%ApplicaitonToken%&
        text=新機能!通知APIを試してみる!&
        href=index.html

f:id:w6500:20120903104149p:plain

キタ!!!!!!!!!!!!!
クリックしてみると遷移先はアプリケーションのページへ。

http://apps.facebook.com/%app%/index.html?fb_source=notification&ref=notif¬if_t=app_notification

hrefは遷移先の相対的なパスを指定するので、index.htmlという値を渡すと上記のような結果になります。

ユーザー名もIDを渡すと名前も表示できるようで試してみました。

POST https://graph.facebook.com/hiroki.itani/notifications?
        access_token=%ApplicaitonToken%&
        text=イケメンの{100000354296851}&
        href=index.html

怒られました。イケメンじゃないからでしょうか?

(#200) Cannot tag users who have not installed the app

どうやらアプリを許可しているユーザーでないと名前は表示できないらしいです。

というわけで、認証してもらって再度実行。

f:id:w6500:20120903110751p:plain

キタ!!!!!!!!!!!!!
あくまでも指定したユーザーへの通知であって、名前を使用したユーザーへは通知は飛びませんでした。

まとめ

嬉しい機能だけど、スパム増えそうだなおい。

「明らかにイケメンじゃないのにイケメンって通知が来てる!!これきっとスパムよぉぉぉぉぉおおおお!!!!!」
という方は、通知のバツ印を押して、すぐさまオフにしましょう。

f:id:w6500:20120903111438p:plain