сохранение сеанса facebook из javascript в php

#php #facebook #facebook-javascript-sdk

#php #Facebook #facebook-javascript-sdk

Вопрос:

Есть ли способ сохранить сеанс, полученный из javascript, в сессию PHP? Я знаю, что мне нужно сделать сообщение, может кто-нибудь привести мне пример? Это то, что у меня есть на данный момент: я хочу сохранить uid в сеансе PHP

 <script type="text/javascript">
                jQuery(document).ready(function() {
                    FB.init({appId: '135570939849404', status: true, cookie: true, xfbml: true});

                    FB.getLoginStatus(function(response) {
                    if (response.session) {
                         //do smething?
                     }else {
                        window.location = "index.php"
                     }       
                    });


                });
        </script>
  

Комментарии:

1. Вы пробовали Facebook PHP-SDK ? он позаботится об этом за вас…

Ответ №1:

очевидно, вы знаете, что хотите сделать, поэтому используете ajax-методы Jquery. Там вы можете включить метод post.

 jQuery.ajax({ 
  async:true, 
  type: "POST", 
  url: ("/yourTarget.php"), 
    dataType : 'json',

    data: {email : 'Jeremy'},

    success : function(data){

        alert("success");

    },

    error : function(XMLHttpRequest, textStatus, errorThrown) {
        alert("error");
    }

});
  

Ответ №2:

Uid хранится в объекте FB как response.session.uid, который является параметром, который вам нужно отправить через Ajax.

 <script type="text/javascript">
            jQuery(document).ready(function() {
                FB.init({appId: '135570939849404', status: true, cookie: true, xfbml: true});

                FB.getLoginStatus(function(response) {
                if (response.session) {
                     jQuery.ajax({ 
                                async:true, 
                                type: "POST", 
                                url: ("/yourTarget.php"), 
                                dataType : 'json',
                                data: {uid : response.session.uid},
                                success : function(data){
                                    alert("success");
                                },
                                error : function(XMLHttpRequest, textStatus, errorThrown) {
                                    alert("error");
                                }

                        });

                 }else {
                    window.location = "index.php"
                 }       
                });


            });
    </script>
  

Все данные сеанса хранятся в файле cookie, который вы читаете в JavaScript. Вы, конечно, можете получить доступ к этим данным непосредственно из PHP, если хотите, используя что-то вроде этого кода:

 function get_facebook_session_data($app_id, $application_secret) {
    $cookieName = 'fbs_' . $app_id;
    if (!isset($_COOKIE[$cookieName])) {
        return null;
    }
    $fb_session = array();
    //If magic_quotes is set then stripslashes else strip doublequotes then trim the cookie contents.
    //Parse the cookie - loading each parameter into an associative array $fb_session.
    parse_str(trim(get_magic_quotes_gpc() ? stripslashes($_COOKIE[$cookieName]): $_COOKIE[$cookieName],'"'), $fb_session);
    return $fb_session; 
  

}

В $fb_session[‘uid’] есть необходимые данные!

Существует также PHP SDK, который создает объект, содержащий эти данные:https://github.com/facebook/php-sdk /

Вы можете получить UID с помощью метода getUser()…..