Надеюсь, кто-нибудь может помочь. Я использую Javascript SDK Facebook (не хочу использовать версию PHP по определенным причинам) - для подключения и получения информации профиля.
При посещении страницы информация профиля собирается и отправляется в файл facebook.php через Ajax. Я проверил это в Firebug и вижу правильно исходный объект JSON и POST.
Как мне получить эту информацию, чтобы получить доступ к имени пользователя и электронной почте, чтобы создать нового пользователя в WordPress?
Ниже приведен код с реальной страницы:
// LOAD FACEBOOK JAVASCRIPT SDK
(function(d){
var js, id = 'facebook-jssdk';
if (d.getElementById(id)) {return;};
js = d.createElement('script');
js.id = id; js.async = true;
js.src = "//connect.facebook.net/en_US/all.js";
d.getElementsByTagName('head')[0].appendChild(js);
}(document)); // END JS SDK LOAD FUNCTION
// PULL FACEBOOK USER INFORMATION
window.fbAsyncInit = function() {
FB.init({ appId : 'xxx', status : true, cookie : true, xfbml : true });
// ACCESS FACEBOOK API AND RETRIEVE PROFILE
FB.api('/me', function(apiresponse){ console.log(apiresponse);
// POST AJAX FB INFO TO CUSTOM PHP HANDLER
$.ajax({
url: "<?php echo get_template_directory_uri(); ?>/facebook.php",
type: 'POST',
cache: 'false',
data: JSON.stringify(apiresponse),
dataType: 'json',
success: function(data) {
console.log(data);
}
});
});
}; // END PULL FACEBOOK INFORMATION
Вот фактический скрипт PHP:
header('Content-type: application/json');
$res = json_decode($_POST['apiresponse'], true);
echo $res;
В Firebug он отображает правильные заголовки и информацию POST (как объект JSON), но я не могу понять, как преобразовать это в пригодные для использования данные, которые можно передать обратно на страницу WordPress. Ниже объект, как показано в Firebug:
{"id":"702658737","name":...
JSON
birthday "05/06/1949"
email "aaron*************"
first_name "Aaron"
gender "male"
id "702658737"
last_name "******"
link "http://www.facebook.com/*********"
locale "en_US"
Location Object { id="***************", name="Los Angeles, California"}
name "Aaron **********"
timezone -7
updated_time "2011-10-22T18:40:02+0000"
username "*********"
verified true
Вот где я застрял. Я не могу понять, как извлечь всю эту информацию и разбить ее на отдельные переменные. На исходной странице (которая находится в WordPress) мне нужно взять имя и адрес электронной почты, чтобы создать нового пользователя.
wp_create_user ($user, "defaultpassword", $email);
Когда я повторяю $ res, я получаю только NULL. Я очень новичок в PHP за пределами WordPress, поэтому я попробовал несколько разных вещей. (сериализация) дает мне ОТВЕТ N; ??? Мне сказали, что я вижу объект PHP, но после осмотра я понятия не имею, как преобразовать этот объект, чтобы использовать его для того, что я ищу.
Спасибо!