#facebook #permissions #oauth-2.0
#Facebook #разрешения #oauth-2.0
Вопрос:
Мое приложение не соответствует новым изменениям в oauth facebook. Раньше я мог запрашивать разрешения для пользователей, чтобы они могли получить доступ к моему приложению. Теперь новые пользователи больше не могут предоставлять разрешения моему приложению. Они отправляются в:
и получите сообщение «Извините, что-то пошло не так. Мы работаем над ее исправлением, как только сможем. » Если, с другой стороны, пользователь уже предоставил разрешения моему приложению до 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 /. Однако все еще не работает.. Спасибо за помощь