PHPでウェブの世界と繋がろう!
menu
ホーム > PHP と Facebook > ウェブサイト開発 > SDKs & Tools for PHP > Facebookとウェブサイトを連携 ログイン 名前取得 ウォール(wall)への書き込み 写真アップロード

Facebookとウェブサイトを連携 ログイン 名前取得 ウォール(wall)への書き込み 写真アップロード

Pocket

SDK for PHP で情報の取得や更新

SDK for PHP で情報の取得や更新

以下のサンプルコードでは、Facebook SDK for PHP を利用して、ID,パスワードで Facebookへログインし、ログインユーザーの名前を取得したり、ウォールへの書き込みを行ったり、写真をアルバムへアップロードしたりするコードです。

SDK for PHP でユーザー名取得(アルファベット)

SDK for PHP を介して、ユーザーのプロファイルを取得し、そのユーザー名を表示させます。

以下のサンプルコードの下記3つの内容を自分の環境に合わせて書き換えて下さい。

  • YOUR_PHP_SDK_DIR_PATH(php-sdkへのパス)
  • YOUR_APP_ID (FacebookアプリケーションのID)
  • YOUR_APP_SECRET (FacebookアプリケーションのSECRET)

FacebookアプリケーションIDなどが不明な場合は一度こちらのページを読んで下さい。php-sdkの設置やFacebookアプリケーションの作成など一通り説明されています。

<?
  // Remember to copy files from the SDK's src/ directory to a
  // directory in your application on the server, such as php-sdk/
  // require_once('php-sdk/facebook.php');
  require_once('YOUR_PHP_SDK_DIR_PATH');

  $config = array(
    'appId' => 'YOUR_APP_ID',
    'secret' => 'YOUR_APP_SECRET',
  );

  $facebook = new Facebook($config);
  $user_id = $facebook->getUser();
?>
<html>
  <head></head>
  <body>

  <?
    if($user_id) {

      // We have a user ID, so probably a logged in user.
      // If not, we'll get an exception, which we handle below.
      try {

        $user_profile = $facebook->api('/me','GET');
        echo "Name: " . $user_profile['name'];

      } catch(FacebookApiException $e) {
        // If the user is logged out, you can have a 
        // user ID even though the access token is invalid.
        // In this case, we'll get an exception, so we'll
        // just ask the user to login again here.
        $login_url = $facebook->getLoginUrl(); 
        echo 'Please <a href="' . $login_url . '">login.</a>';
        error_log($e->getType());
        error_log($e->getMessage());
      }   
    } else {

      // No user, print a link for the user to login
      $login_url = $facebook->getLoginUrl();
      echo 'Please <a href="' . $login_url . '">login.</a>';

    }

  ?>

  </body>
</html>

– サンプル Click Here ! –

SDK for PHP でFQLクエリを使用してユーザー名を取得します

以下のサンプルコードの下記3つの内容を自分の環境に合わせて書き換えて下さい。

  • YOUR_PHP_SDK_DIR_PATH(php-sdkへのパス)
  • YOUR_APP_ID (FacebookアプリケーションのID)
  • YOUR_APP_SECRET (FacebookアプリケーションのSECRET)

FacebookアプリケーションIDなどが不明な場合は一度こちらのページを読んで下さい。php-sdkの設置やFacebookアプリケーションの作成など一通り説明されています。

<?
  // Remember to copy files from the SDK's src/ directory to a
  // directory in your application on the server, such as php-sdk/
  // require_once('php-sdk/facebook.php');
  require_once('YOUR_PHP_SDK_DIR_PATH');

  $config = array(
    'appId' => 'YOUR_APP_ID',
    'secret' => 'YOUR_APP_SECRET',
  );

  $facebook = new Facebook($config);
  $user_id = $facebook->getUser();
?>
<html>
  <head></head>
  <body>

  <?
    if($user_id) {

      // We have a user ID, so probably a logged in user.
      // If not, we'll get an exception, which we handle below.
      try {
        $fql = 'SELECT name from user where uid = ' . $user_id;
        $ret_obj = $facebook->api(array(
                                   'method' => 'fql.query',
                                   'query' => $fql,
                                 ));

        // FQL queries return the results in an array, so we have
        //  to get the user's name from the first element in the array.
        echo 'Name: ' . $ret_obj[0]['name'];

      } catch(FacebookApiException $e) {
        // If the user is logged out, you can have a 
        // user ID even though the access token is invalid.
        // In this case, we'll get an exception, so we'll
        // just ask the user to login again here.
        $login_url = $facebook->getLoginUrl(); 
        echo 'Please <a href="' . $login_url . '">login.</a>';
        error_log($e->getType());
        error_log($e->getMessage());
      }   
    } else {

      // No user, so print a link for the user to login
      $login_url = $facebook->getLoginUrl();
      echo 'Please <a href="' . $login_url . '">login.</a>';

    }

  ?>

  </body>
</html>

– サンプル Click Here ! –

SDK for PHP でウォールに書き込みをします

以下のサンプルコードの下記3つの内容を自分の環境に合わせて書き換えて下さい。

  • YOUR_PHP_SDK_DIR_PATH(php-sdkへのパス)
  • YOUR_APP_ID (FacebookアプリケーションのID)
  • YOUR_APP_SECRET (FacebookアプリケーションのSECRET)

FacebookアプリケーションIDなどが不明な場合は一度こちらのページを読んで下さい。php-sdkの設置やFacebookアプリケーションの作成など一通り説明されています。

<?
  // Remember to copy files from the SDK's src/ directory to a
  // directory in your application on the server, such as php-sdk/
  // require_once('php-sdk/facebook.php');
  require_once('YOUR_PHP_SDK_DIR_PATH');

  $config = array(
    'appId' => 'YOUR_APP_ID',
    'secret' => 'YOUR_APP_SECRET',
  );

  $facebook = new Facebook($config);
  $user_id = $facebook->getUser();
?>
<html>
  <head></head>
  <body>

  <?
    if($user_id) {

      // We have a user ID, so probably a logged in user.
      // If not, we'll get an exception, which we handle below.
      try {
        $ret_obj = $facebook->api('/me/feed', 'POST',
                                    array(
                                      'link' => 'www.example.com',
                                      'message' => 'サンプルメッセージ Posting with the PHP SDK!'
                                 ));
        echo 'Post ID: ' . $ret_obj['id'];

      } catch(FacebookApiException $e) {
        // If the user is logged out, you can have a 
        // user ID even though the access token is invalid.
        // In this case, we'll get an exception, so we'll
        // just ask the user to login again here.
        $login_url = $facebook->getLoginUrl( array(
                       'scope' => 'publish_stream'
                       )); 
        echo 'Please <a href="' . $login_url . '">login.</a>';
        error_log($e->getType());
        error_log($e->getMessage());
      }   
      // Give the user a logout link 
      echo '<br /><a href="' . $facebook->getLogoutUrl() . '">logout</a>';
    } else {

      // No user, so print a link for the user to login
      // To post to a user's wall, we need publish_stream permission
      // We'll use the current URL as the redirect_uri, so we don't
      // need to specify it here.
      $login_url = $facebook->getLoginUrl( array( 'scope' => 'publish_stream' ) );
      echo 'Please <a href="' . $login_url . '">login.</a>';

    } 

  ?>      

  </body> 
</html>  

– サンプル Click Here ! –

SDK for PHP でアルバムに写真をアップロードします

以下のサンプルコードの下記4つの内容を自分の環境に合わせて書き換えて下さい。

  • YOUR_PHP_SDK_DIR_PATH(php-sdkへのパス)
  • YOUR_APP_ID (FacebookアプリケーションのID)
  • YOUR_APP_SECRET (FacebookアプリケーションのSECRET)
  • YOUR_IMG_PATH (画像パス このサンプルコードファイルを設置した場所からのパス)

FacebookアプリケーションIDなどが不明な場合は一度こちらのページを読んで下さい。php-sdkの設置やFacebookアプリケーションの作成など一通り説明されています。

<?
  // Remember to copy files from the SDK's src/ directory to a
  // directory in your application on the server, such as php-sdk/
  // require_once('php-sdk/facebook.php');
  require_once('YOUR_PHP_SDK_DIR_PATH');

  $config = array(
    'appId' => 'YOUR_APP_ID',
    'secret' => 'YOUR_APP_SECRET',
    'fileUpload' => true,
  );

  $facebook = new Facebook($config);
  $user_id = $facebook->getUser();

  $photo = 'YOUR_IMG_PATH'; // Path to the photo on the local filesystem
  $message = 'サンプルメッセージ Photo upload via the PHP SDK!';
?>
<html>
  <head></head>
  <body>

  <?
    if($user_id) {

      // We have a user ID, so probably a logged in user.
      // If not, we'll get an exception, which we handle below.
      try {

        // Upload to a user's profile. The photo will be in the
        // first album in the profile. You can also upload to
        // a specific album by using /ALBUM_ID as the path 
        $ret_obj = $facebook->api('/me/photos', 'POST', array(
                                         'source' => '@' . $photo,
                                         'message' => $message,
                                         )
                                      );
        echo 'Photo ID: ' . $ret_obj['id'];

      } catch(FacebookApiException $e) {
        // If the user is logged out, you can have a 
        // user ID even though the access token is invalid.
        // In this case, we'll get an exception, so we'll
        // just ask the user to login again here.
        $login_url = $facebook->getLoginUrl( array(
                       'scope' => 'photo_upload'
                       )); 
        echo 'Please <a href="' . $login_url . '">login.</a>';
        error_log($e->getType());
        error_log($e->getMessage());
      }   

      echo '<br /><a href="' . $facebook->getLogoutUrl() . '">logout</a>';
    } else {

      // No user, print a link for the user to login
      // To upload a photo to a user's wall, we need photo_upload  permission
      // We'll use the current URL as the redirect_uri, so we don't
      // need to specify it here.
      $login_url = $facebook->getLoginUrl( array( 'scope' => 'photo_upload') );
      echo 'Please <a href="' . $login_url . '">login.</a>';

    }

  ?>

  </body>
</html>

– サンプル Click Here ! –

Graph API Methods

グラフ(Graph)APIメソッドを呼び出すには、最初のパラメータ、および必要に応じて他のオプションのパラメータとして取得したいエンドポイントのパスを渡します。

$ret = $facebook->api($path, $method, $params);

path
要求に対するグラフAPIのパス 例えば “/me/”の場合、ログインユーザーのプロフィールに記録されます。

method
[オプション] 要求内容に応じてHTTPメソッドを指定します。’GET’, ‘POST’, あるいは ‘DELETE’ を指定。

params
[オプション] 特定のグラフ(Graph)APIでは、固有のパラメーターを指定することが出来ます。パラメーターは 「’名前’ => ‘値’」のペアにして連想配列として指定します。

FQLクエリ(Queries)

FQLクエリを実行するには、メソッドに ‘fql.query’ と指定し、’query’ SQLを指定します。それらのパラメータを配列として渡します。

$ret = $facebook->api( array(
                         'method' => 'fql.query',
                         'query' => 'SELECT . . . ',
                     ));


タグ(=記事関連ワード)

タグ: ,

日付

投稿日:2013年1月31日
最終更新日:2014年02月01日

関連記事

このカテゴリの他のページ

この記事へのコメント

トラックバックurl

http://www.tryphp.net/facebooksdk-wallwrite/trackback/