插件如何與Facebook服務器通信而不會暴露太多信息。如何構建像facebook登錄插件的插件?
我想知道如何構建自己的插件,可以在安裝的網站和我的網站之間進行通信。
我的知識僅限於HTML5,CSS3,PHP5,Javascript和一些Jquery。 我意識到可能有很多方法,如果你能指出我朝着正確的方向,或者給我一個想法,我只是在流浪。 (:在此先感謝
插件如何與Facebook服務器通信而不會暴露太多信息。如何構建像facebook登錄插件的插件?
我想知道如何構建自己的插件,可以在安裝的網站和我的網站之間進行通信。
我的知識僅限於HTML5,CSS3,PHP5,Javascript和一些Jquery。 我意識到可能有很多方法,如果你能指出我朝着正確的方向,或者給我一個想法,我只是在流浪。 (:在此先感謝
看看easyXDM framework,它可以讓你很容易地做到這一點,如果你有機會,請閱讀Third Party JavaScript,這將解釋你想要做的細節。
幾年前,我寫了關於this topic on scriptjunkie,現在和現在一樣(儘管現在更多的瀏覽器支持postMessage)。
Ty man。我很感激。 – user2453885
這是一個示例PHP函數,你可以建立在:
function facebook_login()
{
$user = new user();
// Call Facebook API
if (!class_exists('FacebookApiException')) {
require_once ('facebook.php');
}
$facebook = new Facebook(array(
'appId' => $app_id,
'secret' => $app_secret,
));
$fbuser = $facebook->getUser();
if ($fbuser) {
try {
// Proceed knowing you have a logged in user who's authenticated.
$me = $facebook->api('/me'); //user
$uid = $facebook->getUser();
}
catch(FacebookApiException $e) {
echo error_log($e);
return;
}
}
// redirect user to facebook login page if empty data or fresh login requires
if (!$fbuser) {
$loginUrl = $facebook - getLoginUrl(array(
'redirect_uri' => $_SERVER["HTTP_REFERER"],
false
));
$logout = $facebook->getLoginUrl();
echo $loginUrl;
return;
}
// user details
$user->name = $me['name'];
$user->email = $me['email'];
$user->fbid = $uid;
// Check user id in your database
$user->selectbyfbid();
if ($user->database->rows > 0) {
// User exist, Show welcome back message
// User is now connected, log him in
}
else {
// User is new, Show connected message and store info in our Database
// Insert user into Database.
$user->insert_fb();
}
$_SESSION["access_token"] = $facebook->getAccessToken();
login_user($user);
}
在HTML:
<a href="#" onclick="LoadingAnimate();">
<div class="fb-login-button"
onlogin="javascript:CallAfterLogin();"
data-width="600" data-max-rows="1"
data-show-faces="false"
scope="publish_stream,email,publish_actions,offline_access">
JavaScript代碼:
function CallAfterLogin(){
FB.login(function(response) {
if (response.status === "connected")
{
LoadingAnimate(); //show a waiting gif or whatever
FB.api('/me', function(data) {
if(data.email == null)
{
//Facbeook user email is empty, you can check something like this.
ResetAnimate();
}else{
AjaxResponse();
}
});
}
});
}
function AjaxResponse()
{
var myData = 'connect=1&action=fb_login';
jQuery.ajax({
type: "POST",
url: "/process_user.php",
dataType:"html",
data:myData,
cache: false,
success:function(response){
if(target.length > 1)
window.location.href = target;
else
location.reload();
},
error:function (xhr, ajaxOptions, thrownError){
//$("#results").html('<fieldset style="color:red;">'+thrownError+'</fieldset>'); //Error
}
});
}
我希望這有助於你開始!
不解決問題。 –
API ................ –