#php #facebook
#php #Facebook
Вопрос:
Я хочу передать два параметра в массив, $params
которые основаны на функции getLoginUrl
, кстати, я использую php sdk 3.0.1.
Это то, что я написал:
$loginUrl = $facebook->getLoginUrl(array(
'req_perms' => 'publish_stream',
'next' => 'my next url',
));
К сожалению, это не работает? Я почти уверен, что причина в версии sdk .. вход в систему работает хорошо, но без расширенных разрешений и следующего URL. любая помощь? Спасибо.
Комментарии:
1. Вам нужно рассказать нам более подробно, что происходит, когда это происходит и что вы пытаетесь сделать.
2. Я просто хочу, чтобы пользователь подключался к моему веб-сайту. когда пользователь нажимает «войти через facebook», это действительно работает, но расширенные разрешения не отображаются. (просто «Получите доступ к моей базовой информации»)
3. Я решил проблему ..
req_perms
вызываетсяscope
иnext
теперь вызываетсяredirect_uri
.
Ответ №1:
Пока вы отвечаете сами в комментариях, я расширю ответ. 21 мая Facebook объявил об обновлении PHP-SDK, которое является серьезным обновлением, которое нарушит ваш код!
Итак, лучший способ проверить новый способ работы SDK — это получить доступ к предоставленной странице с примером. Теперь для вашего случая это не дает большой информации, поэтому вам следует поискать в base_facebook.php
и действительно, вы найдете (строка 449):
/**
* Get a Login URL for use with redirects. By default, full page redirect is
* assumed. If you are using the generated URL with a window.open() call in
* JavaScript, you can pass in display=popup as part of the $params.
*
* The parameters:
* - redirect_uri: the url to go to after a successful login
* - scope: comma separated list of requested extended perms
*
* @param array $params Provide custom parameters
* @return string The URL for the login flow
*/
Теперь интересной частью является getLogoutUrl()
метод, поскольку он все еще использует next
параметр!