У меня следующий php-код, который я пытаюсь проверить в FB Connect.
<?php
define('FACEBOOK_APP_ID', 'YOUR_APP_ID');
define('FACEBOOK_SECRET', 'YOUR_APP_SECRET');</p>
<p>function get_facebook_cookie($app_id, $application_secret) {
enter code here $args = array();
parse_str(trim($<em>COOKIE['fbs</em>' . $app_id], '\"'), $args);
ksort($args);
$payload = '';
foreach ($args as $key => $value) {
if ($key != 'sig') {
$payload .= $key . '=' . $value;
}
}
if (md5($payload . $application_secret) != $args['sig']) {
return null;
}
return $args;
}
$cookie = get_facebook_cookie(FACEBOOK_APP_ID, FACEBOOK_SECRET);
?>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:fb="http://www.facebook.com/2008/fbml">
<body><br/>
<?php if ($cookie) { ?>
Your user ID is <?= $cookie['uid'] ?>
<br /> Your Acess Token is
<br />
<?php<br>
$user = json_decode(file_get_contents(
'https://graph.facebook.com/me?access_token=' .
$cookie['access_token']));
if($user) {
echo "<br />Display Name = " . $user->name;
echo "<br />First Name = " . $user->first_name;
echo "<br />Last Name = " . $user->last_name;
echo "<br />Birthday = " . $user->birthday;
echo "<br />Home Town = " . $user->hometown->name;
echo "<br />Location = " . $user->location->name;
echo "<br />Email = " . $user->email . "<br />";
}
?>
<?php } else { ?>
<fb:login-button perms="email,user_birthday,publish_stream"></fb:login-button>
<?php } ?></p>
<pre><code><div id="fb-root"></div>
<script src="http://connect.facebook.net/en_US/all.js"></script>
<script>
FB.init({appId: '<?= FACEBOOK_APP_ID ?>', status: true,
cookie: true, xfbml: true});
FB.Event.subscribe('auth.login', function(response) {
window.location.reload();
});
</script>
Проблема, с которой я столкнулся, заключается в том, что она отлично работает с IE и Firefox, однако, когда я делаю то же самое с Google Chrome, я запускаю бесконечный цикл, когда нажимаю кнопку перезагрузки / обновления Chrome после входа в систему.
Любые намеки на то, почему это происходит с Chrome? И как этого избежать.
Спасибо,
Mitesh