facebook twitter hatena line email

Php/facebook/sdk

提供: 初心者エンジニアの簡易メモ
移動: 案内検索

ダウンロード

https://github.com/facebook/facebook-php-sdk

or

git clone https://github.com/facebook/facebook-php-sdk facebook-php-sdk

facebookアプリを作成

https://developers.facebook.com

  1. 設定/基本データからapp_idとapp_secletを取得
  2. 設定/詳細設定からclient(access)tokenを取得

facebookアプリにwebページを登録する

  1. 設定/基本データにwebページを登録する

登録しないとaccessトークン取得時に以下エラーが出る

指定されたURLは、アプリケーションの設定で許可されていません。: 指定されたURLの中にアプリの設定で認められないものが含まれています。ウェブサイトまたはキャンバスのURLと一致しているか、ドメインがアプリのドメインのサブドメインである必要があります。

有効期限なしのaccess_token取得

以下phpを作成してaccesstokenを取得する

  • facebook_gettoken.php
require_once __DIR__ . '/../library/facebook-php-sdk/src/facebook.php';
$facebook = new Facebook(array(
  'appId'  => 'appid',
  'secret' => 'app_secret',
  'cookie' => true,
));
header("Content-type: text/html; charset=utf-8");
$user = $facebook->getUser();
if (!$user) {
    $loginUrl = $facebook->getLoginUrl(
        array(
            'canvas'    => 1,
            'fbconnect' => 0,
            'scope'     => 'status_update,publish_stream,manage_pages,offline_access'
        )
    );
    header('Location: ' . $loginUrl);
    exit();
}
try {
    $data = $facebook->api('/me/accounts');
    print_r($data);
} catch (FacebookApiException $e) {
    echo  $e->getMessage();
    exit();
}
/* $data = Array
(
   [data] => Array
       (
           [0] => Array
               (
                   [category] => Computers/internet website
                   [name] => namexxxxxxxxxxxxx
                   [access_token] => CAAFfcjRIhaxxxxxxxxxxxxxxxxx
                   [perms] => Array
                       (
                           [0] => ADMINISTER
                           [1] => EDIT_PROFILE
                           [2] => CREATE_CONTENT
                           [3] => MODERATE_CONTENT
                           [4] => CREATE_ADS
                           [5] => BASIC_ADMIN
                       )
                   [id] => 20616512xxxxx
               )
*/

facebookファンページに投稿

require_once __DIR__ . '/../library/facebook-php-sdk/src/facebook.php';
$facebook = new Facebook(array(
  'appId'  => 'appid',
  'secret' => 'app_secret',
));
$access_token = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx";
$facebook->setAccessToken($access_token);
try {
    $fb_result = $facebook->api("/me/feed","post", array(
            'message'=>'message test'
        ));
} catch (FacebookApiException $e) {
        print_r($e->__toString());
}