2015-06-18 2 views
5

Я пытаюсь использовать Facebooks PHP SDK для входа на свою страницу. Тем не менее, Facebook игнорирует права доступа, данные в виде массива в getLoginUrl()Параметр области игнорируется facebook login

$loginUrl = $helper->getLoginUrl(
    ['publish_actions'] 
); 

Войти URL выглядит следующим образом:

https://www.facebook.com/v2.3/dialog/oauth?client_id=206265226055767&redirect_uri=http://host.tld/remote/gateway.php&state=67096befe627aa603cb086da681626c1&sdk=php-sdk-4.0.23&scope=publish_actions 

Однако Facebook все еще спросить моего public_profile и мою электронную почту

  • У меня есть права администратора
  • Приложение находится в режиме разработки

Вопрос: почему Facebook игнорирует параметр области действия в диалоговом окне входа в систему oauth.

ответ

3

Попробуйте с этим кодом:

$params = array(
    'scope' => 'publish_actions', 
    'redirect_uri' => 'https://www.myapp.com/post_login_page' 
); 

$loginUrl = $facebook->getLoginUrl($params); 

Не уверен, что, если он работает так же, как с 4.x PHP SDK, хотя, но вы можете попробовать это:

$scope = array('publish_actions'); 
$loginUrl = $helper->getLoginUrl($scope); 

... от хорошо upvoted ответ в этой теме: Specify app scopes in php facebook sdk 4.0.0 or greater

конечно, вы также можете написать это:

$loginUrl = $helper->getLoginUrl(array('publish_actions')); 

Не уверен, если это поможет в вашем случае, буквальное определение массива должны обязательно работать в PHP ... но вы никогда не знаете;)

+0

Тот же результат. Параметры областей являются частью URL-адреса входа, но приложение не запрашивает разрешения, указанные в области. Ваш второй пример равен моему –

+0

. Я получаю следующую ошибку: «Данный URL-адрес не разрешен конфигурацией приложения» - убедитесь, что настройки вашего приложения верны. – luschn

+0

Я удалил параметр redirect_uri. Это исходный url с параметром redirect_uri: https://www.facebook.com/v2.3/dialog/oauth?client_id=206265226055767&redirect_uri=http%3A%2F%2Fmark4.de%2Fremote%2Fgateway.php&state=30dbdd8e1ef715b9404914c4361b9f57&sdk=php -sdk-4.0.23 & scope = manage_pages –

0

Это не игнорировали

Изначально Facebook показывает диалог так что пользователь может утверждать разрешения для приложения, такие как профиль, адрес электронной почты, друзей и т. д. То, что вы испытываете, зависит от разрешений на публикацию, таких как publish_actions.

Разрешение на публикацию запрашивает второе диалоговое окно для того, чтобы пользователь одобрил такие разрешения, которые вы получите сразу после принятия решения о запросе разрешения в первом диалоговом окне.

Итак, не волнуйтесь, это не вы, это они.

Прямо из дока Facebook Permissions - https://developers.facebook.com/docs/facebook-login/permissions/v2.4#optimizing

Надеясь, что помогло.