ラベル Facebook の投稿を表示しています。 すべての投稿を表示
ラベル Facebook の投稿を表示しています。 すべての投稿を表示

2011/12/30

【PHP】FacebookのGraphAPIを使ってウォールを投稿するサンプル【Facebook】

ということで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を使う準備

【Facebook】FacebookのGraphAPIを使う準備

ということで勉強がてらmixiの次はFacebookのGraphAPIを触ってみたいと思います。

まず、こちらにアクセスします。
ログイン要求画面が表示されるかもしれないですが、いつもどおりFacebookにログインする際に
使用しているパスワードでログインします。

下記の画面が表示されるかと思いますので、赤い四角で囲まれた
「新しいアプリケーションを作成」を押下します。
すると次のようなダイアログが出てきますので、必要な項目を入力します。 アプリケーション名と名前空間の登録になります。 今回はWebサイトアプリケーションの作成なので名前空間は使用していませんが入力する 必要があります。
次にセキュリティチェックのダイアログが出てきます。
僕は初めてのアプリケーション作成だったので次のダイアログが表示されました。 電話番号の登録が必要なようです。 赤で囲まれているアンカーをクリックし登録します。
すると下記のダイアログが表示されますので、国を選択し、 携帯のメールアドレスを入力します。
登録すると下記の画面にダイアログが遷移します。 ここでは登録したメールアドレスに来たメールにコードが書かれていますので そのコードを入力し認証を完了させます。
完了すると携帯電話登録のダイアログに戻りますのでダイアログを閉じます。
ダイアログを閉じるとまたセキュリティチェックがあるので書いてある文字を入力します。
上記が完了したらこちらのURLにアクセスし、先ほどのアプリケーションが 登録されているか確認しましょう。 下記のような画面が表示されますので赤で囲まれている「アプリを編集」を押下します。
下記画面が表示されますので必要な項目を入力していきます。 入力が完了したら「変更を保存」ボタンを押下し、赤で囲まれているリンクを押下します。
こちらの画面でも必要な項目を入力します。 入力が完了したら「変更を保存」ボタンを押下します。
これでアプリケーションの登録は完了です。 App ID と App Secret はアプリケーションを作成する際に使用します。 終わり 関連記事: 【PHP】FacebookのGraphAPIを使ってウォールを投稿するサンプル【Facebook】