拙著「WordPress Web開発逆引きレシピ」が発売されました。
WordPressの様々なカスタマイズについて、逆引きの形式で取り上げています。
PHP 7.0での動作確認も行っています。
Facebookアプリ開発に挑戦(その11・Graph APIでウォールに投稿)
Graph APIにはさまざまな機能がありますが、ユーザーのウォールにメッセージを投稿することもできます。
その方法を紹介します。
1.投稿の手順
Graph APIでユーザーのウォールにメッセージを投稿するには、POSTプロトコルで以下のアドレスにアクセスします。
https://graph.facebook.com/me/feed
また、POSTの際のパラメータとして、以下の各情報を渡します。
パラメータ名 | 内容 |
---|---|
access_token | アクセストークン |
message | メッセージの本文 |
picture | メッセージに画像を添付する場合は、その画像のアドレス |
link | メッセージから他のページへのリンクする場合は、そのリンク先のアドレス |
name | メッセージから他のページへのリンクする場合は、そのリンク先のページの名前 |
caption | メッセージから他のページへのリンクする場合は、そのリンク先に関するキャプション(サイト名など) |
description | メッセージから他のページへのリンクする場合は、そのリンク先のページの概要 |
2.投稿結果の確認
投稿に成功すると、POSTリクエストに対するレスポンスボディとして、以下のようなJSON形式の文字列が返されます。
{"id":"ユーザーのID_メッセージのID"}
一方、アクセストークンが正しくないなどで投稿に失敗した場合は、以下のような文字列が返されます。
{"error":{"type":"エラーのタイプ","message":"エラーメッセージ"}}
これらの文字列の内容をチェックして、投稿に成功したかどうかを判断します。
3.事例
PHPでユーザーのウォールに投稿するには、以下のようなコードを実行します。
<?php $token = 'アクセストークン'; $ch = curl_init(); $params = 'access_token=' . urlencode($token); $params .= '&message=' .urlencode('送信するメッセージ'); curl_setopt($ch, CURLOPT_URL, 'https://graph.facebook.com/me/feed'); curl_setopt($ch, CURLOPT_POSTFIELDS, $params); curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); $resp = curl_exec($ch); curl_close($ch); if ($resp === false) { 通信エラー時の処理 } else { $resp = json_decode($resp); if (isset($resp->id)) { 投稿に成功した時の処理 } else if (isset($resp->error)) { 投稿に失敗した時の処理 } } ?>
2行目の「アクセストークン」は、取得済みのアクセストークンに置き換えます。
また、5行目の「メッセージ」は、送信したいメッセージに置き換えます。
通信自体に失敗した場合(Facebookのサーバーに接続できないときなど)は、13行目の「通信エラー時の処理」が実行されます。
また、アクセストークンが正しくないなど、Facebookからエラーが返された時には、21行目の「投稿に失敗した時の処理」が実行されます。
そして、投稿に成功した時には、18行目の「投稿に成功した時の処理」が実行されます。
これらの処理を、ご自分のプログラムに合わせて、適宜書き換えてください。
なお、上記の例では、PHPにcURLがインストールされていることが必要です。
cURLのインストール手順は、PHPのサイトのcURLのページを参照してください。