facebookで外部から直接特定の相手にメッセージを送信する方法
○Facebook APIでメッセージを送信する仕組みは提供されていないらしい
http://developers.facebook.com/docs/reference/api/message/
によれば、将来的に/inboxというエンドポイントが新たに提供されるようですが、現時点では直接通知できる仕組みは提供されないようです。
http://forum.developers.facebook.net/viewtopic.php?id=78618
に「email」に対する権限を取得するしかないとありますが、要は直接メールアドレスを取得して、メールを送信するってことですよね。
○他の方法を考えてみた
まずは自分自身にメッセージを送信する時のパケットをwiresharkでキャプチャして
○送信してるパケットと同じ動きをformで再現
パラメーターを色々変更しつつ、余分な物を省いて完成!
<html> <head> </head> <body> <form method="POST" action="http://ja-jp.facebook.com/ajax/gigaboxx/endpoint/MessageComposerEndpoint.php?__a=1 HTTP/1.1"> <!-- 件名 --> <input type="hidden" name="subject" value="ここに件名" /> <!-- 本文 --> <input type="hidden" name="status" value="ここに本文" /> <!-- 宛先 --> <input type="hidden" name="ids[0]" value="ここに相手のユーザID(例:10000173XXXXXXX)" /> <!-- 新規のメッセージ送信(send_new)か、既存メッセージへの返信か(send_reply) --> <input type="hidden" name="action" value="send_new" /> <!-- 不明 --> <input type="hidden" name="fb_dtsg" value="AQCoc4SL" /> <input type="submit" value="送信"> </form> </body> </html>
○結果
facebookのメッセージを特定の相手に送信することが出来た。
○おまけ
facebookからの戻り値