Facebook API를 이용한 Session Login 구현 및 Group 글 불러오는 예제
<style>
@import url(http://fonts.googleapis.com/earlyaccess/nanumgothic.css);
body {
font-family: 'Nanum Gothic', serif;
}
table {}
</style>
<?
error_reporting(E_ALL^E_NOTICE);
session_start();
$app_id="App id";
$app_secret = "APP SECRET 입력";
$group_id="파싱할 그룹아이디 출력";
$callback_url="http://본 파일 url 입력";
define('FACEBOOK_SDK_V4_SRC_DIR', './facebook-php-sdk-v4/src/Facebook/');
require __DIR__ . '/facebook-php-sdk-v4/autoload.php';
use Facebook\HttpClients\FacebookHttpable;
use Facebook\HttpClients\FacebookCurl;
use Facebook\HttpClients\FacebookCurlHttpClient;
use Facebook\Entities\AccessToken;
use Facebook\Entities\SignedRequest;
use Facebook\FacebookSession;
use Facebook\FacebookRedirectLoginHelper;
use Facebook\FacebookRequest;
use Facebook\FacebookResponse;
use Facebook\FacebookSDKException;
use Facebook\FacebookRequestException;
use Facebook\FacebookOtherException;
use Facebook\FacebookAuthorizationException;
use Facebook\GraphObject;
use Facebook\GraphSessionInfo;
FacebookSession::setDefaultApplication($app_id,$app_secret);
$helper = new FacebookRedirectLoginHelper($callback_url);
// see if a existing session exists
if ( isset( $_SESSION ) && isset( $_SESSION['fb_token'] ) ) {
// create new session from saved access_token
$session = new FacebookSession( $_SESSION['fb_token'] );
// validate the access_token to make sure it's still valid
try {
if ( !$session->validate() ) {
$session = null;
}
} catch ( Exception $e ) {
// catch any exceptions
$session = null;
}
}
if ( !isset( $session ) || $session === null ) {
// no session exists
try {
$session = $helper->getSessionFromRedirect();
} catch( FacebookRequestException $ex ) {
// When Facebook returns an error
// handle this better in production code
print_r( $ex );
} catch( Exception $ex ) {
// When validation fails or other local issues
// handle this better in production code
print_r( $ex );
}
}
// see if we have a session
if ( isset( $session ) ) {
// save the session
$_SESSION['fb_token'] = $session->getToken();
// create a session using saved token or the new one we generated at login
$session = new FacebookSession( $session->getToken() );
// graph api request for user data
$request = new FacebookRequest( $session, 'GET', '/576963682395940?fields=feed{from,message,created_time}' );
$response = $request->execute();
// get response
$graphObject = $response->getGraphObject()->asArray();
// print profile data
echo '<table border=1>
<tr>
<td>작성일</td>
<td>작성자</td>
<td>내용</td>
</tr>';
foreach ($graphObject['feed'] as $key => $value) {
foreach ((array)$value as $key2 => $value2) {
$resArray = (array)$value2;//std Class에서 강제 형변환
$resArray['from'] = (array)$resArray['from'];
//$date = date()
echo "<tr><td>{$resArray['created_time']}</td><td>{$resArray['from']['name']}</td><td>{$resArray['message']}</td></tr>";
}
}
print_r($resArray);
//echo '<pre>' . print_r( $graphObject, 1 ) . '</pre>';
// print logout url using session and redirect_uri (logout.php page should destroy the session)
echo '<a href="' . $helper->getLogoutUrl( $session, '로그아웃구현하면됨' ) . '">Logout</a>';
} else {
// show login url
echo '<a href="' . $helper->getLoginUrl( array( 'email', 'user_friends', 'user_groups' ) ) . '">Login</a>';
}
?>
'Programming > PHP' 카테고리의 다른 글
Codeigniter Index.php 없애기 (0) | 2015.02.14 |
---|---|
MySQL UPDATE문 CASE(조건문) 사용 (0) | 2015.02.08 |