Facebook SDK v5を使ってFacebookページに自動投稿する
仕組みをサイトに導入しようと考えています。
下記のプログラムにて、facebookからページID(id)やページ投稿用トークン(access_token)
を取得することは出来ました。
$fb->get('/me/accounts', $access_token)にて情報を
取得した際に、一人の管理者が複数のfacebookページを持っているとき
どちらのアクセストークンを選択するかを選ばせたいと考えています。
私の知識が浅いため、$fb->get('/me/accounts', $access_token)
で取得したデータの中で["data"]の["access_token"]や["id"]
を個別に取得する方法がわかりません。
どうかお力を貸して頂けないでしょうか。
宜しくお願い致します。
<?php session_start(); // 用意したアプリのApp ID define('MY_APP_ID', 'xxxxxxxx'); // 用意したアプリのApp Secret define('MY_APP_SECRET', 'xxxxxxxxxxxxxxxx'); // autoload.phpの場所(パス)を記載 require_once __DIR__ . '/Facebook/autoload.php'; $fb = new Facebook\Facebook(array('app_id' => MY_APP_ID, 'app_secret' => MY_APP_SECRET, 'default_graph_version' => 'v2.5')); $helper = $fb->getRedirectLoginHelper(); if(isset($_GET['code'])){ try { $access_token = $helper->getAccessToken(); } catch(Facebook\Exceptions\FacebookResponseException $e) { echo 'Graph returned an error: ' . $e->getMessage(); exit; } catch(Facebook\Exceptions\FacebookSDKException $e) { echo 'Facebook SDK returned an error: ' . $e->getMessage(); exit; } if (isset($access_token)) { var_dump($fb->get('/me/accounts', $access_token)); } } else { $this_url = (empty($_SERVER['HTTPS'])?'http://':'https://').$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI']; $permissions = array('manage_pages', 'publish_pages'); $login_url = $helper->getLoginUrl($this_url, $permissions); echo '<a href="' . $login_url . '">Log in with Facebook!</a>'; }
取得したデータの一部
["body":protected]=> string(939) "{"data":[{"access_token":"****************","category":"Community","name":"*****************","id":"**************************","perms":["ADMINISTER","EDIT_PROFILE","CREATE_CONTENT","MODERATE_CONTENT","CREATE_ADS","BASIC_ADMIN"]},{"access_token":"****************","category":"Product\/Service","name":"**********************","id":"***************************","perms":["ADMINISTER","EDIT_PROFILE","CREATE_CONTENT","MODERATE_CONTENT","CREATE_ADS","BASIC_ADMIN"]}],"paging":{"cursors":{"before":"*********************","after":"********************"}}}" ["decodedBody":protected]=> array(2) { ["data"]=> array(2) { [0]=> array(5) { ["access_token"]=> string(198) "*****************************************" ["category"]=> string(9) "Community" ["name"]=> string(13) "*****************************************" ["id"]=> string(16) "*****************************************" ["perms"]=> array(6) { [0]=> string(10) "ADMINISTER" [1]=> string(12) "EDIT_PROFILE" [2]=> string(14) "CREATE_CONTENT" [3]=> string(16) "MODERATE_CONTENT" [4]=> string(10) "CREATE_ADS" [5]=> string(11) "BASIC_ADMIN" } } [1]=> array(5) { ["access_token"]=> string(201) "*****************************************" ["category"]=> string(15) "Product/Service" ["name"]=> string(27) "*****************************************" ["id"]=> string(15) "*****************************************" ["perms"]=> array(6) { [0]=> string(10) "ADMINISTER" [1]=> string(12) "EDIT_PROFILE" [2]=> string(14) "CREATE_CONTENT" [3]=> string(16) "MODERATE_CONTENT" [4]=> string(10) "CREATE_ADS" [5]=> string(11) "BASIC_ADMIN" } } }
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。