拙著「WordPress Web開発逆引きレシピ」が発売されました。
WordPressの様々なカスタマイズについて、逆引きの形式で取り上げています。
PHP 7.0での動作確認も行っています。
Facebookアプリ開発に挑戦(その7・ウォールへの投稿)
アプリケーションから、ウォールにメッセージを投稿する機能が必要な場合もあります。
今日は、メッセージ投稿のダイアログボックスを表示して、ユーザーに投稿を促す方法を紹介します。
1.FB.ui関数
JavaScript SDKには、ダイアログボックスを開くための関数として、「FB.ui」があります。
この関数は、以下のような書き方をします。
FB.ui(
{
method: 'ダイアログの種類',
・
・(その他のパラメータ)
・
},
function(response) {
ダイアログの操作結果に応じた処理
}
);
FB.ui関数の1つ目のパラメータには、ダイアログの種類や、そのダイアログで必要な各種のパラメータを指定します。
そして、2つ目のパラメータとして、ダイアログの操作結果に応じた処理を行うためのコールバック関数を指定します。
2.ウォール投稿のダイアログボックスを開く
ウォールに投稿するためのダイアログボックスを開くには、FB.ui関数に渡すダイアログの種類として、「feed」を指定します。
この他に、以下のリストのようにパラメータを指定します。
FB.ui(
{
method: 'feed',
name: 'リンク先の名前',
link: 'リンク先のアドレス',
picture: '画像のアドレス',
caption: 'キャプション',
description: '概要',
message: 'メッセージ'
},
function(response) {
・
・ダイアログの操作結果に応じた処理
・
}
);
各パラメータの内容は以下の通りです。
| リンク先の名前 | メッセージのリンク先のページの名前 |
|---|---|
| リンク先のアドレス | メッセージのリンク先となるページのアドレス |
| 画像のアドレス | メッセージに添付する画像のアドレス |
| キャプション | リンク先ページのキャプション |
| 概要 | リンク先ページの概要 |
| メッセージ | メッセージ入力欄に初期値として入力される文字列 |
また、実際に表示されるダイアログボックスは、以下のようになります。
なお、この例では、画像のアドレスとして「http://fbrell.com/f8.jpg」を指定しています。
3.投稿されたメッセージの情報を得る
メッセージを投稿するか、投稿せずにダイアログボックスを閉じると、コールバック関数が実行されます。
メッセージを投稿した場合、コールバック関数のパラメータに、メッセージのIDの情報が入ったオブジェクトが渡されます。
メッセージのIDは、そのオブジェクトの「post_id」というプロパティで表されます。
post_idプロパティの値は、メッセージを投稿したユーザーのIDと、メッセージ自体のIDとを、「_」で結んだ文字列になります。
一方、メッセージを投稿せずにダイアログボックスを閉じた場合、コールバック関数のパラメータには何も渡されません。
これらのことから、コールバック関数を以下のように組むことで、メッセージが投稿されたかどうかに応じて、適切な処理を行うことができます。
function(response) {
if (response && response.post_id) {
var ids = response.post_id.split('_');
・
・(メッセージが投稿されたときの処理
・ ids[0]がメッセージを投稿したユーザーのIDで、
・ ids[1]がメッセージ自体のID)
・
}
else {
・
・(メッセージが投稿されなかったときの処理)
・
}
}
なお、個別のメッセージのアドレスは、「http://www.facebook.com/permalink.php?id=ユーザーのID&story_fbid=メッセージのID」で表すことができます。
