Какой самый эффективный способ проверить, вошел ли пользователь в систему? - PullRequest
1 голос
/ 14 февраля 2012

Я довольно хорошо знаком с Facebook SDK и API, но у меня все еще много проблем с ним.Прежде всего, скорость!

Каждый раз, когда я выполняю вызов api, требуется дополнительная секунда или две, чтобы вернуть ответ.Поэтому я хотел бы знать, какой самый эффективный и быстрый способ определить, вошел ли пользователь через Facebook.В настоящее время я использую:

        // Get the User ID of the facebook user
        $facebook_user_id = $this->facebook->getUser();

        // If a facebook user exists, then try to get their information
        if($facebook_user_id){
            try{
                // Get the facebook users details
                $facebook_user_name = $this->facebook->api('/me','GET');
                $this->facebook_logged_in = $facebook_user_id;
                return $this->unique_id = $this->facebook_logged_in;
            }catch(FacebookApiException $e){
                error_log($e);
                return false;
            }
        }else{
            return false;   
        }

Это работает в определенной степени, но это очень медленно.Я буквально хочу знать, вошел ли пользователь в систему и является ли его сеанс действительным.Есть ли другой способ сделать это?Почему это так медленно?

1 Ответ

1 голос
/ 14 февраля 2012

В большинстве всех примеров PHP на Facebook они, как правило, используют $uid = $facebook->getUser(); см. http://developers.facebook.com/docs/reference/php/facebook-getUser/

И затем они проверяют, равен ли $ uid 0, а затем не входят в систему. Если кроме 0, тоу вас есть их идентификатор пользователя на Facebook.

Похоже, вы дополнительно вызываете команду /me, когда вам это действительно не нужно.Также, чтобы сделать вызов / me быстрее, укажите fields=Comma,List,Of,Fields,You,Need, чтобы запрос мог работать быстрее.Но, как отмечалось выше, для получения статуса входа в систему проверьте значение 0 в $ uid.

...