Я знаю, что здесь есть много вопросов и ответов по этому поводу, но я не могу их понять, потому что они не показывают полные примеры кода или предназначены для чего-то другого, чем то, что я пытаюсь сделать.
У меня есть простая тестовая вкладка facebook. Не приложение для холста. Я хочу иметь возможность получить идентификатор пользователя, но должен сделать так, чтобы он запрашивал у них доступ к этой информации, прежде чем она появится в подписанном запросе.
Итак, я ищу пример кода для простой вкладки приветствия. Мне не нужна страница входа или что-то в этом роде, поскольку она будет на странице фан-контента, поэтому они должны будут уже войти в систему. Я просто хочу, чтобы всплывающее диалоговое окно запрашивало у них разрешение, чтобы я мог получить идентификатор пользователя.
Спасибо
Изменить: я хотел добавить, что только что понял свою проблему, но на самом деле это не ответ на этот вопрос. Я понял, как получить идентификатор пользователя, не спрашивая у пользователя разрешения на доступ к его профилю. Это было так же просто, как добавить этот код на страницу, и он работает одинаково во вкладках и приложениях на основе холста. getUser() сам по себе возвращает 0, но поскольку пользователь уже вошел в систему, чтобы увидеть этот контент, когда getUser() возвращает 0, тогда код просто получает идентификатор пользователя из метода API. Теперь, когда я, наконец, понял это, это кажется простым.
$session = $facebook->getUser();
if (!$session) {
$url = $facebook->getLoginUrl(array(
'canvas' => 1,
'fbconnect' => 0
));
echo "<script type='text/javascript'>top.location.href = '$url';</script>";
} else {
try {
$uid = $facebook->getUser();
$me = $facebook->api('/me');
$updated = date("l, F j, Y", strtotime($me['updated_time']));
echo "Hello " . $me['name'] . "<br />";
echo "You last updated your profile on " . $updated;
} catch (FacebookApiException $e) {
echo "Error:" . print_r($e, true);
}
}
Я все еще хотел бы знать, есть ли способ сделать так, чтобы диалоговое окно расширенных разрешений отображалось для приложения с вкладками, поэтому было бы неплохо увидеть решения для php sdk.