Ошибка разрешения Oauth2.0

#facebook #permissions #oauth-2.0

#Facebook #разрешения #oauth-2.0

Вопрос:

Мое приложение не соответствует новым изменениям в oauth facebook. Раньше я мог запрашивать разрешения для пользователей, чтобы они могли получить доступ к моему приложению. Теперь новые пользователи больше не могут предоставлять разрешения моему приложению. Они отправляются в:

https://www.facebook.com/dialog/permissions.request?app_id=myappidamp;display=pageamp;next=http://www.mywebsite.com/facebook/amp;response_type=codeamp;state=094d0568ec11f05e8cc594d69342d0e1amp;fbconnect=1

и получите сообщение «Извините, что-то пошло не так. Мы работаем над ее исправлением, как только сможем. » Если, с другой стороны, пользователь уже предоставил разрешения моему приложению до oauth, все было в порядке.

Php выглядит так:

 $user = $facebook->getUser();

if ($user) {
  try {
    // If the user has been authenticated then proceed
    $user_profile = $facebook->api('/me');
  } catch (FacebookApiException $e) {
    error_log($e);
    $user = null;
  }
 }

 // If the user is authenticated then generate the variable for the logout URL
 if ($user) {
 $logoutUrl = $facebook->getLogoutUrl();
  

затем пользователь получает страницу индекса html моего приложения. в противном случае предполагается, что они будут перенаправлены в диалоговое окно запроса разрешений с помощью следующего php в конце страницы:

  } else {
   $loginUrl = $facebook->getLoginUrl(array('redirect_uri' => $fbconfig['appUrl']));
   print "<script type='text/javascript'>top.location.href = '$loginUrl';</script>";
 }
  

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

Кто-нибудь может помочь мне решить проблему с разрешениями? Спасибо за любой совет

Ответ №1:

Сообщение об ошибке, которое вы получаете, является

  API Error Code: 191
 API Error Description: The specified URL is not owned by the application
 Error Message: redirect_uri is not owned by the application.
  

Это означает, что вы пытаетесь перенаправить пользователя сразу после входа на страницу, которая не является частью вашего приложения (в соответствии с вашей конфигурацией)

Наиболее вероятной причиной этого является то, что URL, определенный в $fbconfig['appUrl']) , не соответствует тому, что вы настроили в настройках вашего приложения в поле Домен сайта (ов)

Комментарии:

1. @ Igy. Спасибо. Я не уверен, почему это больше не работает несколько недель назад. Чтобы уточнить, для параметра $fbconfig[‘AppURL’]) установлено значение https:// mywebsite.com/facebook / . URL-адрес моего сайта и URL-адрес холста установлены на один и тот же указанный выше URL-адрес. Спасибо за вашу помощь.

2. Наиболее вероятным виновником здесь является поле «Домен приложения», оно находится на странице основных настроек чуть выше выбора категории приложения — настройки URL-адреса сайта и URL-адреса canvas отличаются

3. Спасибо Igy. ‘URL сайта’ (https:) имеет то же значение, что и $fbconfig[‘AppURL’]), который имеет то же значение, что и мой ‘безопасный URL холста’. С другой стороны, для «страницы холста» установлено значение apps.facebook.com/myapp /. Однако все еще не работает.. Спасибо за помощь