QA@IT

Facebook SDK v4.0でユーザー情報を取得後、データベースにその情報を登録できません。

3632 PV

__________2015-07-19_16.59.14.png
__________2015-07-19_16.58.42.png

php歴含め経験が浅いので、お力添え頂ければ幸いです。

回答

<?php

session_start();
//ここは各phpファイルをおいた場所を参照
require_once( 'vendor/facebook/php-sdk-v4/src/Facebook/FacebookSession.php' );
require_once( 'vendor/facebook/php-sdk-v4/src/Facebook/FacebookRedirectLoginHelper.php' );
require_once( 'vendor/facebook/php-sdk-v4/src/Facebook/FacebookRequest.php' );
require_once( 'vendor/facebook/php-sdk-v4/src/Facebook/FacebookResponse.php' );
require_once( 'vendor/facebook/php-sdk-v4/src/Facebook/FacebookSDKException.php' );
require_once( 'vendor/facebook/php-sdk-v4/src/Facebook/FacebookRequestException.php' );
require_once( 'vendor/facebook/php-sdk-v4/src/Facebook/FacebookAuthorizationException.php' );
require_once( 'vendor/facebook/php-sdk-v4/src/Facebook/GraphObject.php' );
require_once( 'vendor/facebook/php-sdk-v4/src/Facebook/FacebookSession.php' );
require_once( 'vendor/autoload.php' );

//ここはこのままでOK
use Facebook\FacebookSession;
use Facebook\FacebookRedirectLoginHelper;
use Facebook\FacebookRequest;
use Facebook\FacebookResponse;
use Facebook\FacebookSDKException;
use Facebook\FacebookRequestException;
use Facebook\FacebookAuthorizationException;
use Facebook\GraphObject;
// init app with app id (APPID) and secret (SECRET)
FacebookSession::setDefaultApplication('xxxxxxxxxxxxxxxxx','xxxxxxxxxxxxxxxxxxxxx');
$helper = new FacebookRedirectLoginHelper('http://localhost:8887/logbal/login.php');
try {
$session = $helper->getSessionFromRedirect();
} catch(FacebookRequestException $ex) {
// When Facebook returns an error
} catch(\Exception $ex) {
// When validation fails or other local issues
}
if ($session) {
// ログイン済み
try {
$request = new FacebookRequest( $session, 'GET', '/me');
$response = $request->execute();
$user_profile = $graphObject;
$graphObject = $response->getGraphObject();

echo "";
echo print_r( $graphObject );

$con = mysql_connect('localhost', 'root', 'root');
if (!$con) {
exit('データベースに接続できませんでした。');
}

$result = mysql_select_db('DEMO', $con);
if (!$result) {
exit('DEMOデータベースを選択できませんでした。');
}

$user_profile['id']     = $_REQUEST['id'];
$user_profile['gender'] = $_REQUEST['gender'];
$user_profile['name']   = $_REQUEST['name'];
$user_profile['link']   = $_REQUEST['link'];

$result = mysql_query("INSERT INTO users(id, gender, name, link) VALUES('$id', '$gender', '$name', '$link')", $con);
if (!$result) {
exit('データを登録できませんでした。');
}

echo "";
} catch(FacebookRequestException $e) {
echo "Exception occured, code: " . $e->getCode();
echo " with message: " . $e->getMessage();
}
}else{
$loginUrl = $helper->getLoginUrl();
echo'Login With Facebook';
}
?>

編集 履歴 (0)
ウォッチ

この質問への回答やコメントをメールでお知らせします。