「WordPressで学ぶPHP(4)通信編」を発売しました。
本書は、「WordPressで学ぶPHP(1)変数・制御構造編」「WordPressで学ぶPHP(2)データ構造編」「WordPressで学ぶPHP(3)関数編」の続編にあたり、Webブラウザとサーバー(PHP)との通信と、PHPから他のサーバーに通信することについて解説します。
Facebookアプリ開発に挑戦(その12・Facebookページのウォールに投稿)
先日の記事では、ユーザーのウォールにプログラムからメッセージを投稿する方法を紹介しました。
この方法を応用すると、ユーザーのウォールだけでなく、ユーザーが管理しているFacebookページのウォールにメッセージを投稿することもできます。
その方法を紹介します。
1.manage_pageのPermissionを得る
プログラムでFacebookページを操作するには、「manage_page」というPermissionを得ることが必要です。
先日の「OAuth 2.0認証の概要」で解説した方法(Client-side flow)か、Server-side flowを使って、manage_pageのPermissionがあるアクセストークンを取得します。
2.Facebookページごとのアクセストークンを得る
次に、1.で得たアクセストークンを使って、以下のようなアドレスにアクセスします。
https://graph.facebook.com/me/accounts?access_token=アクセストークン
すると、以下のようなJSONの文字列が返されます。
{
"data": [
{
"name": Facebookページの名前,
"category": Facebookページのカテゴリ,
"id": FacebookページのID,
"access_token": Facebookページにアクセスするためのアクセストークン
},
{
"name": Facebookページの名前,
"category": Facebookページのカテゴリ,
"id": FacebookページのID,
"access_token": Facebookページにアクセスするためのアクセストークン
},
・・・
}
この情報から、個々のFacebookページにアクセスする際のアクセストークンが分かります。
3.Facebookページのウォールに投稿する
FacebookページのIDと、それに対応するアクセストークンが分かれば、それらの情報を使って、Facebookページのウォールにメッセージを投稿することができます。
投稿するには、POSTプロトコルで以下のようなアドレスにアクセスします。
https://graph.facebook.com/FacebookページのID/feed
また、POSTの際のパラメータとして、以下の各情報を渡します。
| パラメータ名 | 内容 |
|---|---|
| access_token | Facebookページにアクセスするためのアクセストークン |
| message | メッセージの本文 |
| picture | メッセージに画像を添付する場合は、その画像のアドレス |
| link | メッセージから他のページへのリンクする場合は、そのリンク先のアドレス |
| name | メッセージから他のページへのリンクする場合は、そのリンク先のページの名前 |
| caption | メッセージから他のページへのリンクする場合は、そのリンク先に関するキャプション(サイト名など) |
| description | メッセージから他のページへのリンクする場合は、そのリンク先のページの概要 |
4.Facebookページのウォールに投稿するプログラム
「Facebookアプリ開発に挑戦(その11・Graph APIでウォールに投稿)」の記事で、ユーザーのウォールに投稿するPHPのプログラムの例を挙げました。
このプログラムを一部書き換えることで、Facebookページのウォールに投稿することもできます。
書き換える箇所は、以下の2か所です。
- 2行目の「$token = 'アクセストークン';」で、アクセストークンとして、Facebookページにアクセスするためのアクセストークンを指定します。
- 6行目の「curl_setopt($ch, CURLOPT_URL, 'https://graph.facebook.com/me/feed');」で、URL内の「me」を、FacebookページのIDに置き換えます。
