From 3670af62042034f7006fecc4103580e6b516cfd6 Mon Sep 17 00:00:00 2001 From: gnuboard Date: Wed, 15 May 2013 19:54:39 +0900 Subject: [PATCH] =?UTF-8?q?facebook=20php=20api=20=EC=A0=81=EC=9A=A9?= =?UTF-8?q?=EC=A4=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- bbs/write_comment_update.php | 37 ++++++++++- plugin/sns/facebook/callback.php | 29 ++++++--- skin/board/basic/sns_comment.skin.php | 65 +++++++++++++++++++ skin/board/basic/view_comment.skin.php | 89 +------------------------- 4 files changed, 124 insertions(+), 96 deletions(-) create mode 100644 skin/board/basic/sns_comment.skin.php diff --git a/bbs/write_comment_update.php b/bbs/write_comment_update.php index f4fdc3956..f4aa9f6b1 100644 --- a/bbs/write_comment_update.php +++ b/bbs/write_comment_update.php @@ -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'=>'댓글 수정' ); diff --git a/plugin/sns/facebook/callback.php b/plugin/sns/facebook/callback.php index a4dc95012..c5ce18e5c 100644 --- a/plugin/sns/facebook/callback.php +++ b/plugin/sns/facebook/callback.php @@ -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 << +$(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(); +}); + +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'); ?> \ No newline at end of file diff --git a/skin/board/basic/sns_comment.skin.php b/skin/board/basic/sns_comment.skin.php new file mode 100644 index 000000000..4657bec42 --- /dev/null +++ b/skin/board/basic/sns_comment.skin.php @@ -0,0 +1,65 @@ + $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; + } + } +} +?> + + SNS 등록 + +
+ '; + echo ''; + } 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 ''; + echo ''; + echo ''; + } + ?> +
+ + diff --git a/skin/board/basic/view_comment.skin.php b/skin/board/basic/view_comment.skin.php index 9b0293a90..768e4b0fb 100644 --- a/skin/board/basic/view_comment.skin.php +++ b/skin/board/basic/view_comment.skin.php @@ -113,94 +113,11 @@ var char_max = parseInt(); // 최대 - - SNS 등록 - - $config['cf_facebook_appid'], - 'secret' => $config['cf_facebook_secret'], - )); - $user = $facebook->getUser(); + - - /* - 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 ''; -} -?> - -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(); -} -*/ -?> - - - 내용