संपादित प्रश्न में उपयोगकर्ता का निर्माण नहीं करता:php फेसबुक एसडीके वर्डप्रेस
इम मेरी वर्डप्रेस का उपयोग कर साइट पर एक फेसबुक लॉगइन प्लगइन बनाने की कोशिश कर this sdk
जब मैं लॉगइन करने के लिए फेसबुक बटन पर क्लिक करें या पंजीकरण करें यह फेसबुक के माध्यम से एक छोटी सी खिड़की खुलता है जो जारी रखता है लेकिन इसके बाद यह वर्डप्रेस डेटाबेस में उपयोगकर्ता को नहीं बनाता है और वर्डप्रेस फूटर तोड़ता है, इसलिए पेज रीफ्रेश के बाद यह लॉगिन फॉर्म के तहत An active access token must be used to query information about the current user.
मैसेज दिखाता है।
मेरा पूरा फेसबुक लॉगइन php कोड इस एक है:
<?php
include 'facebook/facebook.php';
function gazi_fb_loginForm(){
gazi_fb_error_message();
gazi_fb_LoadScript();
if(is_user_logged_in()==false){
?>
<div class="facebook_wrapper">
<img src="<?php echo plugin_dir_url(__FILE__).'images/facebook_or.png';?>" style="border:none; box-shadow:none;">
<br>
<a href="javascript:void(0)" onClick="FBLogin();">
<img src="<?php echo plugin_dir_url(__FILE__).'images/facebook_button.png';?>" alt="Fb Connect" title="Login with facebook" /></a></div>
<?php
}
}
function gazi_fb_LoadScript(){
global $wpdb;
$gazi_option=$wpdb->prefix."gazi_option";
$path = plugin_dir_url(__FILE__); // define path to link and scripts
$pageURL = get_permalink();
$sign = strpos($pageURL,'?')?'&':'?';
//facebook app secret
$qry1="SELECT value FROM $gazi_option WHERE fieldname='gazi_facebook_app_secret'";
$facebook_app_secret = $wpdb->get_var($qry1);
$qry2="SELECT value FROM $gazi_option WHERE fieldname='gazi_facebook_app_id'";
$facebook_app_id = $wpdb->get_var($qry2);
$facebook = new Facebook(array(
'appId' => $facebook_app_id,
'secret' => $facebook_app_secret,
));
?>
<script type="text/javascript">
window.fbAsyncInit = function() {
FB.init({
appId : '<?php echo $facebook_app_id; ?>',
xfbml : true,
status : true,
cookie : true,
version : 'v2.1'
});
FB.getLoginStatus(function(response) {
if (response.status === 'connected') {
console.log('Logged in.');
}
else {
console.log('initiate FB login...');
FB.login();
}
});
FB.api('/me/feed',function(response){
var idDiv=document.getElementById('result');
idDiv.textContent=JSON.stringify(response);
});
};
(function(d){
var js, id = 'facebook-jssdk', ref = d.getElementsByTagName('script')[0];
if (d.getElementById(id)) {return;}
js = d.createElement('script'); js.id = id; js.async = true;
js.src = "//connect.facebook.net/en_US/all.js";
ref.parentNode.insertBefore(js, ref);
}(document));
function FBLogin(){
FB.login(function(response){
if(response.authResponse){
window.location.href = "<?php echo $pageURL.$sign;?>option=fblogin";
}
}, {scope: 'email'});
}
</script>
<?php
}
function gazi_fb_error_message(){
if(isset($_SESSION['msg'])){
echo '<div class="'.$_SESSION['msg_class'].'">'.$_SESSION['msg'].'</div>';
unset($_SESSION['msg']);
unset($_SESSION['msg_class']);
}
}
function gazi_fb_login_validate(){
$path = plugin_dir_url(__FILE__); // define path to link and scripts
$pageURL = get_permalink();
$sign = strpos($pageURL,'?')?'&':'?';
if(isset($_REQUEST['option']) && $_REQUEST['option'] == "fblogin"){
global $wpdb;
$gazi_option=$wpdb->prefix."gazi_option";
//facebook app secret
$qry1="SELECT value FROM $gazi_option WHERE fieldname='gazi_facebook_app_secret'";
$facebook_app_secret = $wpdb->get_var($qry1);
$qry2="SELECT value FROM $gazi_option WHERE fieldname='gazi_facebook_app_id'";
$facebook_app_id = $wpdb->get_var($qry2);
$facebook = new Facebook(array(
'appId' => $facebook_app_id,
'secret' => $facebook_app_secret,
'cookie' => TRUE,
));
$fbuser = $facebook->getUser();
if ($fbuser) {
try {
$user_profile = $facebook->api('/me');
}
catch (Exception $e) {
echo $e->getMessage();
exit();
}
if (!isset($user_profile['email'])) $user_profile['email'] = $user_profile['id'] . '@facebook.com';
$user_fbid = $fbuser;
$user_email = $user_profile["email"];
$user_fnmae = $user_profile["first_name"];
if(email_exists($user_email)) { // user is a member
$user = get_user_by('login', $user_email);
$user_id = $user->ID;
wp_set_auth_cookie($user_id, true);
} else { // this user is a guest
$random_password = wp_generate_password(10, false);
$user_id = wp_create_user($user_email, $random_password, $user_email);
update_user_meta($user_id, 'avtar_image', 'https://graph.facebook.com/' . $user_profile['id'] . '/picture?type=large');
wp_update_user(array(
'ID' => $user_id,
'display_name' => $user_profile['name'],
'first_name' => $user_profile['first_name'],
'last_name' => $user_profile['last_name']
));
wp_set_auth_cookie($user_id, true);
}
wp_redirect($pageURL.$sign.'login4=1');
exit;
}
}
}
?>
यहाँ
उपरोक्त कोड में जावास्क्रिप्ट है।
<script type="text/javascript">
window.fbAsyncInit = function() {
FB.init({
appId : '<?php echo $facebook_app_id; ?>',
xfbml : true,
status : true,
cookie : true,
version : 'v2.1'
});
FB.getLoginStatus(function(response) {
if (response.status === 'connected') {
console.log('Logged in.');
}
else {
console.log('initiate FB login...');
FB.login();
}
});
FB.api('/me/feed',function(response){
var idDiv=document.getElementById('result');
idDiv.textContent=JSON.stringify(response);
});
};
(function(d){
var js, id = 'facebook-jssdk', ref = d.getElementsByTagName('script')[0];
if (d.getElementById(id)) {return;}
js = d.createElement('script'); js.id = id; js.async = true;
js.src = "//connect.facebook.net/en_US/all.js";
ref.parentNode.insertBefore(js, ref);
}(document));
function FBLogin(){
FB.login(function(response){
if(response.authResponse){
window.location.href = "<?php echo $pageURL.$sign;?>option=fblogin";
}
}, {scope: 'email'});
}
</script>
क्या कोई जानता है कि यह कैसे काम कर रहा है? मैं क्या गलत कर रहा हूँ? किसी भी मदद की बहुत सराहना की है।
धन्यवाद।
अद्यतन:
मैं इस जवाब का उपयोग कर मेरी फाइल में कुछ पंक्तियाँ here
इस बदली गई बदला है: $ fbuser = $ फेसबुक> getUser();
if ($fbuser) {
try {
$user_profile = $facebook->api('/me');
}
catch (Exception $e) {
echo $e->getMessage();
exit();
}
एक यह करने के लिए:
$fbuser = $facebook->getUser();
$photo_details = array('message' => 'my place');
$file='photos/my.jpg'; //Example image file
$photo_details['image'] = '@' . realpath($file);
if ($fbuser) {
try {
// We have a valid FB session, so we can use 'me'
$upload_photo = $facebook->api('/me/photos', 'post', $photo_details);
} catch (FacebookApiException $e) {
error_log($e);
}
मैं अब पंजीकृत कर ली लेकिन वर्डप्रेस के अपने बहुत ही अजीब
उपयोगकर्ता नाम और उपनाम allways @facebook है: डी
तो मुझे लगता है इसे यहां चर नहीं मिल रहा है:
if (!isset($user_profile['email'])) $user_profile['email'] = $user_profile['id'] . '@facebook.com'; and just keeping @facebook instead without the `$user_profile['id']`
onClick के बजाय onclick प्रयास करें। – Ozan
आपके उत्तर के लिए धन्यवाद, eyvallah, लेकिन जब मैं बटन पर क्लिक करता हूं तो कोई भाग्य समान नहीं होता है और कंसोल में कुछ भी त्रुटि नहीं होती है। – Gazi
मुझे अभी कोड चलाने की कोई संभावना नहीं है लेकिन यह भी दायरे से बाहर हो सकती है। – Ozan