Возврат AJAX-объекта JSON из Facebook - PullRequest
0 голосов
/ 03 ноября 2011

Надеюсь, кто-нибудь может помочь. Я использую 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, но после осмотра я понятия не имею, как преобразовать этот объект, чтобы использовать его для того, что я ищу.

Спасибо!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...