blogですかい

仕事、プライベートで学んだことなどを発信し、その内容がたとえ少数でも誰かの役に立ったらなら、それはとっても嬉しいなって

Facebook AppからユーザにNotificationを投げる方法

Notificationとは

f:id:oh-sky:20130711094457p:plain

こういうの

公式ドキュメント

PHPでの実装例

<?php
//対象ユーザのID
$facebookId = '100001557707071';
//アプリアクセストークン(≠ユーザアクセストークン)
$accessToken = 'input-app-access-token-here';
$linkUrl = 'relative_path_in_the_canvas_page.html';
$notificationTemplate = "Notification Fieldに表示する文字列。";
$notificationTemplate .= "ユーザ名を出すにはこうするのだよ、@[{$facebookId}]";

//APIのURL
$url = "https://graph.facebook.com/{$facebookId}/notifications";
//POSTパラメータ
$params = "access_token={$accessToken}";
$params .= "&href={$linkUrl}";
$params .= "&template={$notificationTemplate}";

//APIを叩く
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch,CURLOPT_POST,1);
curl_setopt($ch,CURLOPT_POSTFIELDS,$params);
$res = curl_exec($ch);
curl_close($ch);
var_dump($res);
  • アプリはCanvas Pageを持っていなければならない
  • App IDやApp Secretは不要
  • 使用するトークンは App TokenであってUser Tokenではない
  • Notificationのリンク先はCanvas Page内で、相対パスで指定する
  • Templateは180文字までで、文字数を超えると投稿失敗になる(省略されるとかではない)