•外掛作者:ETERNAL
•外掛描述:讓論壇支援Facebook、MSN、Google、Yahoo帳號登入
•外掛版本:1.0
•外掛下載:請參考下面說明
•資料來源:http://www.et99.net/for-phpbb3-t50166.html
今天花了些時間,修改這支外掛 http://www.et99.net/facebook-authentica ... 49994.html
把MSN、Google、Yahoo的登入,也加入到phpbb3內
只要你在Facebook、MSN、Google、Yahoo任一個網站有帳號的話,可以直接登入phpbb3論壇 第一次登入時,會要求會員輸入暱稱,之後在論壇顯示該暱稱 登入正常 發言正常 私人訊息正常,所有功能與正常會員相同 可在我個人的網站,可以試用體驗一下這功能
Demo: http://www.et99.net
以下分享一下修改過程
步驟一. (若不使用facebook登入,可以跳過此步驟)
首先到facebook註冊開發者帳號,並且建立一個app
得到 App ID 及 App Secret
本文重點在於phpbb,如何申請建立app,在此不進行說明
facebook官方有很詳細教學文件
https://developers.facebook.com/
步驟二. (若不使用MSN登入,可以跳過此步驟)
首先到Windows Live註冊開發者帳號,並且建立一個app
得到 Client ID 及 Client secret
本文重點在於phpbb,如何申請建立app,在此不進行說明
Windows Live官方有很詳細教學文件
http://msdn.microsoft.com/zh-tw/windowslive
步驟三. (若不使用Google登入,可以跳過此步驟)
首先到 https://www.google.com/accounts/ManageDomains 註冊你的網址,證明你是這個網站的管理者
這邊是使用openid來取得帳號
Google官方有很詳細教學文件 http://code.google.com/intl/zh-TW/apis/ ... penID.html
有興趣的人可以研究
步驟四. (若不使用Yahoo登入,可以跳過此步驟)
先申請YDN開發者,然後在這網址 https://developer.apps.yahoo.com/manage 註冊你的網址,證明你是這個網站的管理者
這邊是使用openid來取得帳號
Yahoo官方有很詳細教學文件 http://developer.yahoo.com/openid/
有興趣的人可以研究
步驟五.
下載 http://www.et99.net/tool/auth.rar
解壓縮可以得到
/auth/auth.php
/auth/function_sns.php
/styles/prosilver/template/sns_register.html
修改 auth.php 文件
$key是做為md5加密驗證用,務必修改,內容自行隨意定義
代碼: 選擇全部
$AuthUrl = 'http://你的網址/auth/auth.php';
$RealmUrl = 'http://你的網址/';
$PolicyUrl = 'http://你的網址/';
$key="請輸入自定義密鑰";
代碼: 選擇全部
$app_id = "在facebook申請的App ID";
$app_secret = "在facebook申請的App Secret";
代碼: 選擇全部
$app_id = "在Windows Live申請的Client ID";
$app_secret = "在Windows Live申請的Client secret";
步驟六.
匯入這段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);
代碼: 選擇全部
$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");
find
代碼: 選擇全部
<li class="icon-logout"><a href="{U_LOGIN_LOGOUT}" title="{L_LOGIN_LOGOUT}" accesskey="x">{L_LOGIN_LOGOUT}</a></li>
代碼: 選擇全部
<!-- IF not S_USER_LOGGED_IN and S_REGISTER_ENABLED and not (S_SHOW_COPPA or S_REGISTRATION) -->
<li class="icon-logout"><a href="http://你的論壇網址/auth/auth.php?AuthType=facebook" >Facebook登入</a> </li>
<li class="icon-logout"><a href="http://你的論壇網址/auth/auth.php?AuthType=msn" >MSN登入</a> </li>
<li class="icon-logout"><a href="http://你的論壇網址/auth/auth.php?AuthType=Google" >Facebook登入</a> </li>
<li class="icon-logout"><a href="http://你的論壇網址/auth/auth.php?AuthType=Yahoo" >Facebook登入</a> </li>
<!-- ENDIF -->
最後補充一些話:
facebook yahoo msn google 都有提供額外功能
例如取得用戶聯絡人,發塗鴉牆,取得用戶相簿,向在線用戶發訊息等等
可利用此外掛向用戶取得權限,使這些功能結合到論壇上
這些功能是雙面刃,希望使用這外掛的開發者,向用戶取得授權時,應保護用戶隱私,不要濫用
例如:
對用戶的好友發垃圾訊息 、 洗塗鴉牆 之類