Facebook GraphAPI を使って、AccessTokenを取得する機会がありましたので、やり方をメモしておきます。
SDK(facebook/graph-sdk)インストール
AccessTokenを取得するには、facebook/graph-sdkを使います。
https://github.com/facebookarchive/php-graph-sdk
readmeに使い方が書いてありますが、composerでインストールを推奨しているため、手順に従って進めます。
$ vim composer.json
{
"require": {
"facebook/graph-sdk": "5.7.0"
}
}
追記したらcomposer installをして、vendor以下に追加されたことを確認してインストール完了です。
facebookオブジェクトを生成
下記のように、facebookオブジェクトを生成します。
$facebookObj = new \Facebook\Facebook([
'app_id' => '11111111111111',
'app_secret' => '11111111111111',
'default_graph_version' => 'v2.10'
]);
app_id と app_secret については、facebookのdeveloperページでアプリ登録すると取得できるかと思いますので、そちらに記載された値を入力してください。
AccessTokenの取得
AccessTokenを取得します。
$helper = $facebookObj->getRedirectLoginHelper();
$accessToken = $helper->getAccessToken();
if (!isset($accessToken)) {
if ($helper->getError()) {
$message = 'Error: ' . $helper->getError() . "\n";
$message .= ' Error Code: ' . $helper->getErrorCode() . "\n";
$message .= ' Error Reason: ' . $helper->getErrorReason() . "\n";
$message .= ' Error Description: ' . $helper->getErrorDescription() . "\n";
echo $message;
exit;
}
}
echo $accessToken;
上記のようにすることで、accesstokenを取得することができます。
errorの場合、エラーをこのようにキャッチすることができますので、ログに書き出すなど、適したやり方で処理を組むようにしてください。