Facebook Authentication for phpbb3

網站架設,免費空間申請,架站技術交流區

ETERNAL
 
文章: 2937
註冊時間: 2003-12-03 11:08 pm
性別: 男生

Facebook Authentication for phpbb3

文章ETERNAL » 2011-08-24 7:21 pm

今天花了一些時間,把facebook帳號註冊到論壇上

論壇上多出facebook登入
fb10.png
fb10.png (5.22 KiB) 被瀏覽 30017 次


使用facebook帳號登入之後,顯示你的facebook ID
fb11.png
fb11.png (6.39 KiB) 被瀏覽 30017 次


可以正常發文
fb12.png
fb12.png (14.66 KiB) 被瀏覽 30017 次


可以正常私人訊息
fb13.png
fb13.png (13.59 KiB) 被瀏覽 30017 次


可在我個人的網站,可以試用體驗一下這功能
Demo: http://www.et99.net


以下分享一下修改過程

步驟一.
首先到facebook註冊開發者帳號,並且建立一個app
得到 App ID App Secret

本文重點在於phpbb,如何申請建立app,在此不進行說明
facebook官方有很詳細教學文件
https://developers.facebook.com/

步驟二.
下載 tool/fb.rar
解壓縮可以得到 /fb/facebook_connect.php

修改facebook_connect.php 這三行參數
$app_id = "你的App ID";
$app_secret = "你的App Secret";
$my_url = "http://你的網址/fb/facebook_connect.php";
連同目錄上傳到你的論壇

步驟三.
匯入這段SQL語法
代碼: 選擇全部
DROP TABLE IF EXISTS `phpbb_sns_player`;
CREATE TABLE `phpbb_sns_player` (
  `id` int(10) unsigned NOT NULL auto_increment,
  `sns_id` varchar(100) collate utf8_unicode_ci NOT NULL default '',
  `user_id` int(11) unsigned NOT NULL default '0',
  `user_name` varchar(64) collate utf8_unicode_ci NOT NULL,
  `type` tinyint(4) unsigned NOT NULL default '0',
  `datetime` int(10) unsigned NOT NULL default '0',
  PRIMARY KEY  (`id`),
  KEY `sns_id` (`sns_id`)
) ENGINE=MyISAM  DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci AUTO_INCREMENT=1177 ;



打開 /includes/functions_user.php
find
代碼: 選擇全部
$table_ary = array(USERS_TABLE, USER_GROUP_TABLE, TOPICS_WATCH_TABLE, FORUMS_WATCH_TABLE, ACL_USERS_TABLE, TOPICS_TRACK_TABLE, TOPICS_POSTED_TABLE, FORUMS_TRACK_TABLE, PROFILE_FIELDS_DATA_TABLE, MODERATOR_CACHE_TABLE, DRAFTS_TABLE, BOOKMARKS_TABLE, SESSIONS_KEYS_TABLE, PRIVMSGS_FOLDER_TABLE, PRIVMSGS_RULES_TABLE);

replace
代碼: 選擇全部
$table_ary = array(USERS_TABLE, USER_GROUP_TABLE, TOPICS_WATCH_TABLE, FORUMS_WATCH_TABLE, ACL_USERS_TABLE, TOPICS_TRACK_TABLE, TOPICS_POSTED_TABLE, FORUMS_TRACK_TABLE, PROFILE_FIELDS_DATA_TABLE, MODERATOR_CACHE_TABLE, DRAFTS_TABLE, BOOKMARKS_TABLE, SESSIONS_KEYS_TABLE, PRIVMSGS_FOLDER_TABLE, PRIVMSGS_RULES_TABLE,"phpbb_sns_player");


打開 /styles/prosilver/template/overall_header.html
find
代碼: 選擇全部
<li class="icon-logout"><a href="{U_LOGIN_LOGOUT}" title="{L_LOGIN_LOGOUT}" accesskey="x">{L_LOGIN_LOGOUT}</a></li>

after add
代碼: 選擇全部
<!-- IF not S_USER_LOGGED_IN and S_REGISTER_ENABLED and not (S_SHOW_COPPA or S_REGISTRATION) --><li class="icon-logout"><a href="https://www.facebook.com/dialog/oauth?client_id=你的APPID&scope=email,publish_stream&redirect_uri=http://你的論壇網址/fb/facebook_connect.php" >facebook登入</a> </li><!-- ENDIF -->



水色論壇 http://www.et99.net
簡恩峻分享


ETERNAL
 
文章: 2937
註冊時間: 2003-12-03 11:08 pm
性別: 男生

Re: Facebook Authentication for phpbb3

文章ETERNAL » 2011-08-24 7:55 pm

PS:
裝這之前,建議增加會員註冊時,禁用@
否則有可能造成帳號重複

修改方式如下(此修改為選用)

打開/includes/ucp/ucp_register.php

代碼: 選擇全部
         if (!check_form_key('ucp_register'))
         {
            $error[] = $user->lang['FORM_INVALID'];
         }

after add
代碼: 選擇全部
         if(strpos($data['username'],'@')>-1)
         {
            $error[] = '帳號禁止有@符號';
         }



水色論壇 http://www.et99.net
簡恩峻分享


ETERNAL
 
文章: 2937
註冊時間: 2003-12-03 11:08 pm
性別: 男生

Re: Facebook Authentication for phpbb3

文章ETERNAL » 2011-08-26 11:52 am

發現了三個bug
今天之前有下載安裝的朋友,麻煩參照下面方式修正
open /fb/facebook_connect.php

find
代碼: 選擇全部
$message = ($l_success) ? $l_success : $user->lang['LOGIN_REDIRECT'];

replace
代碼: 選擇全部
$message = $user->lang['LOGIN_REDIRECT'];


find
代碼: 選擇全部
function reg($uid,$sns_id,$passwordm,$email,$time)

replace
代碼: 選擇全部
function reg($uid,$sns_id,$password,$email,$time)


find
代碼: 選擇全部
// Register user...

after add
代碼: 選擇全部
$cp_data = array();


修改完畢!!


水色論壇 http://www.et99.net
簡恩峻分享

hkatalk
 
文章: 2
註冊時間: 2012-06-30 10:23 pm

Re: Facebook Authentication for phpbb3

文章hkatalk » 2012-07-17 8:26 pm

ETERNAL 寫:匯入這段SQL語法
代碼: 選擇全部
DROP TABLE IF EXISTS `phpbb_sns_player`;
CREATE TABLE `phpbb_sns_player` (
  `id` int(10) unsigned NOT NULL auto_increment,
  `sns_id` varchar(100) collate utf8_unicode_ci NOT NULL default '',
  `user_id` int(11) unsigned NOT NULL default '0',
  `user_name` varchar(64) collate utf8_unicode_ci NOT NULL,
  `type` tinyint(4) unsigned NOT NULL default '0',
  `datetime` int(10) unsigned NOT NULL default '0',
  PRIMARY KEY  (`id`),
  KEY `sns_id` (`sns_id`)
) ENGINE=MyISAM  DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci AUTO_INCREMENT=1177 ;


匯入到哪裏?




ETERNAL
 
文章: 2937
註冊時間: 2003-12-03 11:08 pm
性別: 男生

Re: Facebook Authentication for phpbb3

文章ETERNAL » 2012-07-19 10:41 am

匯到你的資料庫


水色論壇 http://www.et99.net
簡恩峻分享


回到 架站討論

誰在線上

正在瀏覽這個版面的使用者:沒有註冊會員 和 2 位訪客

cron