「WordPressで学ぶPHP(4)通信編」を発売しました。
本書は、「WordPressで学ぶPHP(1)変数・制御構造編」「WordPressで学ぶPHP(2)データ構造編」「WordPressで学ぶPHP(3)関数編」の続編にあたり、Webブラウザとサーバー(PHP)との通信と、PHPから他のサーバーに通信することについて解説します。 
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」で表すことができます。


 
  