facebook php api 적용중

This commit is contained in:
gnuboard
2013-05-15 19:54:39 +09:00
parent 39ee718590
commit 3670af6204
4 changed files with 124 additions and 96 deletions

View File

@ -143,7 +143,7 @@ if ($w == 'c') // 댓글 입력
wr_is_comment = 1,
wr_comment = '$tmp_comment',
wr_comment_reply = '$tmp_comment_reply',
wr_subject = '$wr_subject',
wr_subject = '',
wr_content = '$wr_content',
mb_id = '$mb_id',
wr_password = '$wr_password',
@ -179,6 +179,40 @@ if ($w == 'c') // 댓글 입력
// 포인트 부여
insert_point($member['mb_id'], $board['bo_comment_point'], "{$board['bo_subject']} {$wr_id}-{$comment_id} 댓글쓰기", $bo_table, $comment_id, '댓글');
$wr_subject = get_text(stripslashes($wr['wr_subject']));
if ($config['cf_facebook_use'] && $_POST['facebook_checked']) {
include_once(G4_SNS_PATH."/facebook/src/facebook.php");
$facebook = new Facebook(array(
'appId' => $config['cf_facebook_appid'],
'secret' => $config['cf_facebook_secret'],
'cookie' => true
));
$user = $facebook->getUser();
if ($user) {
try {
$link = G4_BBS_URL.'/board.php?bo_table='.$bo_table.'&wr_id='.$wr['wr_parent'].'&#c_'.$comment_id;
$attachment = array(
'message' => stripslashes($wr_content),
'name' => $wr_subject,
'link' => $link,
'description' => stripslashes($wr['wr_content'])
);
$facebook->api('/me/feed/', 'post', $attachment);
//$errors = error_get_last(); print_r2($errros); exit;
$access_token = $facebook->getAccessToken();
sql_query(" update {$g4['member_table']} set mb_facebook_token = '{$access_token}', mb_facebook_checked = '{$_POST['facebook_checked']}' where mb_id = '{$member['mb_id']}' ", true);
} catch(FacebookApiException $e) {
;;;
}
}
}
// 메일발송 사용
if ($config['cf_email_use'] && $board['bo_use_email'])
{
@ -187,7 +221,6 @@ if ($w == 'c') // 댓글 입력
$group_admin = get_admin('group');
$board_admin = get_admin('board');
$wr_subject = get_text(stripslashes($wr['wr_subject']));
$wr_content = nl2br(get_text(stripslashes("원글\n{$wr['wr_subject']}\n\n\n댓글\n$wr_content")));
$warr = array( ''=>'입력', 'u'=>'수정', 'r'=>'답변', 'c'=>'댓글 ', 'cu'=>'댓글 수정' );

View File

@ -3,12 +3,11 @@ include_once("./_common.php");
include_once(G4_SNS_PATH."/facebook/src/facebook.php");
$facebook = new Facebook(array(
'appId' => $config['cf_facebook_appid'],
'secret' => $config['cf_facebook_secret'],
'appId' => $config['cf_facebook_appid'],
'secret' => $config['cf_facebook_secret']
));
$user = $facebook->getUser();
print_r2($user); exit;
if ($user) {
try {
@ -19,11 +18,25 @@ if ($user) {
}
}
if ($user_profile) {
sql_query(" update {$g4['member_table']} set mb_facebook_user = '{$_REQUEST['code']}' where mb_id = '{$member['mb_id']}' ");
alert_close("페이스북 승인이 성공 했습니다.\\n\\n페이스북 체크를 하시면 모든 댓글 등록시 페이스북에도 자동 등록됩니다.");
$g4['title'] = '페이스북 콜백';
include_once(G4_PATH.'/head.sub.php');
if ($user) {
$g4_sns_url = G4_SNS_URL;
echo <<<EOT
<script>
$(function() {
var opener = window.opener;
opener.$("#facebook_icon").attr("src", "{$g4_sns_url}/icon/facebook_on.png");
opener.$("#facebook_checked").attr("disabled", false);
opener.$("#facebook_checked").attr("checked", true);
//alert("페이스북 승인이 되었습니다.");
window.close();
});
</script>
EOT;
} else {
sql_query(" update {$g4['member_table']} set mb_facebook_user = '' where mb_id = '{$member['mb_id']}' ");
alert_close("페이스북을 로그아웃 했습니다.");
}
include_once(G4_PATH.'/tail.sub.php');
?>

View File

@ -0,0 +1,65 @@
<?php
if (!defined('_GNUBOARD_')) exit; // 개별 페이지 접근 불가
if (!$is_member) return;
if (!$config['cf_facebook_use']) return;
include_once(G4_SNS_PATH."/facebook/src/facebook.php");
$facebook = new Facebook(array(
'appId' => $config['cf_facebook_appid'],
'secret' => $config['cf_facebook_secret']
));
$user = $facebook->getUser();
//echo $token = $facebook->getAccessToken();
// CAABsXPS0wr4BAIasoXNLyI3Hg6Lqg8Qmze4vrLi2sBhenwe9Sx3qNu6hHRDGiKTVI6sDys3kmhP1B9kSoyfriZBMeTU5VEbJir8rc7QnWbyUZAZAijwd4UvPrJZCQTR4Y2fJTHVUCRILRir5Qqfs
//$user = $facebook->getUser();
//$facebook->setAccessToken("CAABsXPS0wr4BAIasoXNLyI3Hg6Lqg8Qmze4vrLi2sBhenwe9Sx3qNu6hHRDGiKTVI6sDys3kmhP1B9kSoyfriZBMeTU5VEbJir8rc7QnWbyUZAZAijwd4UvPrJZCQTR4Y2fJTHVUCRILRir5Qqfs");
if ($user) {
try {
$user_profile = $facebook->api('/me');
$access_token = $facebook->getAccessToken();
sql_query(" update {$g4['member_table']} set mb_facebook_token = '{$access_token}' where mb_id = '{$member['mb_id']}' ", true);
} catch (FacebookApiException $e) {
error_log($e);
$user = null;
}
} else {
if ($member['mb_facebook_token']) {
$facebook->setAccessToken($member['mb_facebook_token']);
try {
$user_profile = $facebook->api('/me');
//print_r2($user_profile);
$user = $facebook->getUser();
} catch (FacebookApiException $e) {
error_log($e);
$user = null;
}
}
}
?>
<tr>
<th scope="row">SNS 등록</th>
<td>
<div id="sns_facebook">
<?php
if ($user) {
echo '<input type="checkbox" name="facebook_checked" id="facebook_checked" '.($member['mb_facebook_checked']?'checked':'').' value="1">';
echo '<img src="'.G4_SNS_URL.'/icon/facebook_on.png" id="facebook_icon">';
} else {
$facebook_url = $facebook->getLoginUrl(array("redirect_uri"=>G4_SNS_URL."/facebook/callback.php", "scope"=>"user_website,publish_stream,read_stream,offline_access", "display"=>"popup"));
echo '<input type="checkbox" name="facebook_checked" id="facebook_checked" disabled value="1">';
echo '<a href="'.$facebook_url.'" id="facebook_url" onclick="return false;"><img src="'.G4_SNS_URL.'/icon/facebook_'.($user?'on':'off').'.png" id="facebook_icon">';
echo '<script>$(function(){ $("#facebook_url").click(function(){ window.open(this.href, "facebook_url", "width=500,height=250"); }); });</script>';
}
?>
</div>
</td>
</tr>

View File

@ -113,94 +113,11 @@ var char_max = parseInt(<?php echo $comment_max ?>); // 최대
<td><?php echo $captcha_html; ?></td>
</tr>
<?php } ?>
<tr>
<th scope="row">SNS 등록</th>
<td>
<?php
// https://developers.facebook.com/docs/reference/php/
if ($config['cf_facebook_use']) {
include_once(G4_SNS_PATH."/facebook/src/facebook.php");
$facebook = new Facebook(array(
'appId' => $config['cf_facebook_appid'],
'secret' => $config['cf_facebook_secret'],
));
$user = $facebook->getUser();
<?php
include_once($board_skin_path."/sns_comment.skin.php");
?>
/*
if ($member['mb_facebook_user']) {
$user = $member['mb_facebook_user'];
} else {
$user = $facebook->getUser();
if ($user) {
try {
$user_profile = $facebook->api('/me');
} catch (FacebookApiException $e) {
error_log($e);
$user = null;
}
}
}
*/
$user = $member['mb_facebook_user'] ? $member['mb_facebook_user'] : $facebook->getUser();
if ($user) {
//$facebook_url = $facebook->getLogoutUrl(array("next"=>G4_SNS_URL."/facebook/callback.php"));
$facebook_url = $facebook->getLogoutUrl();
} else {
//$facebook_url = $facebook->getLoginUrl(array("redirect_uri"=>G4_SNS_URL."/facebook/callback.php"));
$facebook_url = $facebook->getLoginUrl(array("redirect_uri"=>G4_SNS_URL."/facebook/callback.php", "scope"=>"user_about_me,publish_stream,read_friendlists,offline_access"));
}
echo '<div id="sns_facebook">';
$flag = $member['mb_facebook_use_id'] ? 'on' : 'off';
echo '<a href="'.$facebook_url.'" target="_blank"><img src="'.G4_SNS_URL.'/icon/facebook_'.$flag.'.png">';
echo '<input type="checkbox" name="wr_facebook_checked" '.($member['mb_facebook_checked']?'checked':'').'>';
echo '</div>';
}
?>
<?php
/*
include(G4_SNS_PATH.'/facebook/src/facebook.php');
$facebook = new Facebook(array('appId'=>G4_FACEBOOK_APPID,'secret'=>G4_FACEBOOK_SECRET));
// Get User ID
$user = $facebook->getUser();
if ($user) {
try {
// Proceed knowing you have a logged in user who's authenticated.
$user_profile = $facebook->api('/me');
} catch (FacebookApiException $e) {
error_log($e);
$user = null;
}
}
// Login or logout url will be needed depending on current user state.
if ($user) {
//echo $logoutUrl = $facebook->getLogoutUrl();
$loginUrl = $facebook->getLogoutUrl();
} else {
//$loginUrl = $facebook->getLoginUrl(array('redirect_uri'=>urlencode(G4_SNS_URL.'/facebook/callback.php')));
$loginUrl = $facebook->getLoginUrl(array('redirect_uri'=>(G4_SNS_URL.'/facebook/callback.php')));
//$loginUrl = $facebook->getLoginUrl();
}
*/
?>
<!-- <div><a href="<?php echo $loginUrl; ?>" target="_blank"><img src="<?php echo G4_SNS_URL; ?>/icon/facebook_off.png" id="icon_facebook"></a></div>
<div><input type="checkbox" name="chk_facebook" value="1"></div>
</div>
<div id="sns_twitter">
<div><img src="<?php echo G4_SNS_URL; ?>/icon/twitter_off.png" id="icon_twitter"></div>
<div><input type="checkbox" name="chk_twitter" value="1"></div>
</div> -->
</td>
</tr>
<tr>
<th scope="row">내용</th>
<td>