PHPでFacebookのウォールに投稿する


Facebookのウォールに投稿するものが欲しくなったので、作ってみました。

まずはFacebookの開発者ページでアプリの登録をします。
そこで、App ID/API Keyとアプリの秘訣を取得します。

投稿にはユーザー認証が必要なので、php-sdkのサンプルプログラムを参考にします。

<?php

require './src/facebook.php';

$facebook = new Facebook(array(
    'appId' => '***********',    // App ID/API
    'secret' => '**********',    // アプリの秘訣
));

$user = $facebook->getUser();

if ($user) {
  try {
    $user_profile = $facebook->api('/me');
  } catch (FacebookApiException $e) {
    error_log($e);
    $user = null;
  }
}

if ($user) {
    $logoutUrl = $facebook->getLogoutUrl();
} else {
    $loginUrl = $facebook->getLoginUrl(array('scope'=>'status_update,publish_stream'));
}

?>
<!doctype html>
<html xmlns:fb="http://www.facebook.com/2008/fbml">
<head>
<title>php-sdk</title>
<style>
body {
font-family: 'Lucida Grande', Verdana, Arial, sans-serif;
}
h1 a {
text-decoration: none;
color: #3b5998;
}
h1 a:hover {
text-decoration: underline;
}
</style>
</head>
<body>
<h1>php-sdk</h1>

<?php if ($user): ?>
<a href="<?php echo $logoutUrl; ?>">Logout</a>
<?php else: ?>
<div>
Login using OAuth 2.0 handled by the PHP SDK:
<a href="<?php echo $loginUrl; ?>">Login with Facebook</a>
</div>
<?php endif ?>

<h3>PHP Session</h3>
<pre><?php print_r($_SESSION); ?></pre>

<?php if ($user): ?>
<h3>You</h3>
<img src="https://graph.facebook.com/<?php echo $user; ?>/picture">

<h3>Your User Object (/me)</h3>
<pre><?php print_r($user_profile); ?></pre>
<?php else: ?>
<strong><em>You are not Connected.</em></strong>
<?php endif ?>

</body>
</html>

ほとんどサンプルプログラムのままですが、ログインのところで投稿の許可を促す設定を追加しています。

    $loginUrl = $facebook->getLoginUrl(array('scope'=>'status_update,publish_stream'));

認証ができた状態で、下記のようなプログラムを実行するとウォールに投稿できます。

<?php
    $attachment = array(
        'message' => 'メッセージはこちら',
    );
    $result = $facebook->api('/me/feed', 'post', $attachment);

コメントをどうぞ

メールアドレスが公開されることはありません。