ウォールに投稿する前準備

今まではデータ取得ばかりしてきましたので、今度は何か投稿してみましょう。投稿するにはそれなりの権限が必要になります。ホントはアプリを登録する際に認証画面へ最初に飛ばすのがいいのだと思いますが、ちょっと面倒なのでリンクをクリックすればOKのようにしてみました。

説明は次回。

<?php

require 'facebook/facebook.php';

$facebook = new Facebook(array(
    'appId' => 'xxx',
    'secret' => 'xxx',
    'cookie' => true,
));

$session = $facebook->getSession();
$me = null;
if( $session )
{
    try
    {
        $uid = $facebook->getUser();
        $me = $facebook->api('/me');
    }
    catch(FacebookApiException $e)
    {
        error_log($e);
    }
}

$response = null;
$wall = null;
if( $me )
{
    if( isset($_POST["post_wall"]) && 0 < @strlen($_POST["msg"]) )
    {
        try
        {
            $response = $facebook->api(
                '/me/feed',
                "post",
                array(
                    'message' => $_POST["msg"],
                    "privacy" => '{"value":"EVERYONE"}',
                    // value : EVERYONE
                    //         CUSTOM
                    //         ALL_FRIENDS
                    //         NETWORKS_FRIENDS
                    //         FRIENDS_OF_FRIENDS
                )
            );
        }
        catch(FacebookApiException $e)
        {
            var_dump($e->getResult());
        }
    }

    if( isset($_POST["get_wall"]) )
    {
        try
        {
            $wall = $facebook->api(
                '/me/feed',
                array('limit' => 3)
            );
        }
        catch(FacebookApiException $e)
        {
            var_dump($e->getResult());
        }
    }
}

$authUrl = $facebook->getLoginUrl(array(
                "req_perms" => "read_stream,publish_stream",
            ));

?>
<html>
<head>
  <meta http-equiv="content-type" content="text/html; charset=UTF-8" />
  <title>php-sdk</title>
</head>
<body>

<p>権限が無い場合は<a href="<?php echo $authUrl;?>">こちら</a>をクリックして認証してください</p>

<?php if ($me && $response)
{
    echo '<br/><div style="border: 1px solid #000;">実行結果<br/>';
    var_dump($response);
    echo '</div><br/>';
}
?>

<form method="POST">
  <input type="submit" name="get_wall" value="取得する">
</form>
<?php if( $wall ) { ?>
  </br><div style="border: 1px solid #000;"><?php print_r($wall); ?></div><br/>
<?php } ?>

<br/>

<form method="POST">
  <input type="text" name="msg"><br/>
  <input type="submit" name="post_wall" value="送信する">
</form>

</body>
</html>