質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Facebook Graph API

Facebook Graph APIとは Facebookのグラフデータベース用のAPIであり、対応言語はPHP、Perl、ActionScript、JavaScriptなどがあります。

SDK

SDK(software development kit)は特定のハードウェアのプラットフォーム、開発環境又はソフトウェアパッケージでソフトウェアをつくるのに必要な開発ツールのセットです。SDKはAPI、IDE又は他の開発ツールとフレームワークを組み合わせたもので構成されていることがあります。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Q&A

解決済

1回答

567閲覧

Facebook SDK v5を使ってFacebookページに自動投稿する

kans00229

総合スコア28

Facebook Graph API

Facebook Graph APIとは Facebookのグラフデータベース用のAPIであり、対応言語はPHP、Perl、ActionScript、JavaScriptなどがあります。

SDK

SDK(software development kit)は特定のハードウェアのプラットフォーム、開発環境又はソフトウェアパッケージでソフトウェアをつくるのに必要な開発ツールのセットです。SDKはAPI、IDE又は他の開発ツールとフレームワークを組み合わせたもので構成されていることがあります。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

0グッド

0クリップ

投稿2017/07/21 08:09

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" } } }

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

自己解決

取得したデータを変数に格納して、getDecodedBody()でデコードすることで
無事に望むデータを取得することが出来ました。

忘備録として書いておきます。

$fbdate_tmp = $fb->get('/me/accounts', $access_token); $fbdate = $fbdate_tmp->getDecodedBody();

投稿2017/07/25 06:04

kans00229

総合スコア28

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問