ということでPHPでFacebookのGraphAPIを使ってウォールを投稿するサンプルを作りました。 ※FacebookのGraphAPIを使うにはOAuth認証を使うのでこちらより必要なモノを取得して ください必要なもの・App ID ・App Secret 前回の記事を参考にしてください。 サービスのURLを http://example.com/index.php という感じに設定しました。 またmixiGraphAPIだとリダイレクト先のURLも指定するのですが、FacebookのOAuth認証では リダイレクトURLをパラメータに含める方式なのでプログラム側で指定します。 リダイレクトURLはプログラム側で http://example.com/callback.php のような感じに設定しました。 通常リダイレクトURLにてアクセストークンの保存処理などを行うのですが、今回は サンプルということでそのままウォールに投稿もしています。 下記ソースです。 index.php<?php // リクエストパラメータ $param = array( 'client_id' => 'App ID', 'redirect_uri' => 'リダイレクトURL', 'scope' => 'status_update,offline_access', 'response_type' => 'code', 'display' => 'page', ); // 認証画面へリダイレクト header('Location: https://www.facebook.com/dialog/oauth?' . http_build_query($param));callback.php<?php if ($_GET['code'] != '') { // アクセストークンの取得 $access_token = getAccessToken($_GET['code']); } if ($access_token != '') { // ウォールへ投稿 $text = 'test message'; $res = postUpdate($access_token, $text); } /** * アクセストークンの取得 * @param string $code Facebookからのレスポンス * @return string $access_token アクセストークン */ function getAccessToken($code) { // アクセストークン取得用URL $auth_url = 'https://graph.facebook.com/oauth/access_token'; // リクエストパラメータ $param = array( 'client_id' => 'App ID', 'client_secret' => 'App Secret', 'code' => $code, 'redirect_uri' => 'リダイレクトURL', ); $auth_url .= '?' . http_build_query($param); // cURLでアクセストークンを取得 $ch = curl_init(); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_URL, $auth_url); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); curl_setopt($ch, CURLOPT_POSTFIELDS, $param); $res = curl_exec($ch); curl_close($ch); parse_str($res, $res_array); return $res_array['access_token']; } /** * Facebookのウォールへ投稿します。 * @param string $access_token アクセストークン * @param string $text 投稿内容 * @return assoc_array $res Facebookからのレスポンス */ function postUpdate($access_token, $text) { // ウォール投稿API URL $post_url = 'https://graph.facebook.com/me/feed'; $ch = curl_init(); $param = array( 'access_token' => $access_token, 'message' => $text, ); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_POST, true); curl_setopt($ch, CURLOPT_URL, $post_url); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); curl_setopt($ch, CURLOPT_POSTFIELDS, $param); $res = curl_exec($ch); curl_close($ch); return $res; }流れは大体mixiGraphAPIと一緒でした。 ですのでそちらの方も参考にしていただければと思います。 終わり 関連記事: 【Facebook】FacebookのGraphAPIを使う準備
2011/12/30
【PHP】FacebookのGraphAPIを使ってウォールを投稿するサンプル【Facebook】
登録:
コメントの投稿 (Atom)
0 件のコメント:
コメントを投稿