Я пытаюсь создать вкладку приветствия для одной из моих страниц, но я хотел бы иметь доступ к понравившимся пользователям (разрешение user_likes).
Я могу найти документацию о том, как это сделать для приложения Facebook или веб-сайта, интегрирующего Facebook, я не могу найти документацию о том, как это сделать для приложения (вкладки) на странице facebook (в качестве вкладки приветствия).
Возможно ли в качестве вкладки страницы запрашивать дополнительные разрешения у пользователя, но разрешить доступ к ней без нее, или мне нужно сделать приложение, а также вкладку страницы? Возможно, у меня есть кнопка, которая при нажатии на нее предоставляет дополнительные разрешения страницы?
В настоящее время я пытаюсь выполнить две отдельные реализации, ни одна из которых я не могу работать, PHP и Javascript.
Благодаря,
Просто используя
$loginUrl = $fb->getLoginUrl( array('canvas' => 1, 'scope' => 'user_likes,user_about_me,user_birthday') ); echo "<a href='$loginUrl'>Login</a>";
Результаты в ссылке, которая просто перенаправляет пользователя (в пределах страницы iframe) на экран с логотипом Facebook. Мне нужен диалог прав доступа!
Использование кода javascript
<script> FB.init({ appId : 'APPID', status : true, // check login status cookie : true, // enable cookies to allow the server to access the session xfbml : true, // parse XFBML oauth : true // enable OAuth 2.0 }); FB.login(function(response) { if (response.authResponse) { console.log('Welcome! Fetching your information.... '); FB.api('/me', function(response) { console.log('Good to see you, ' + response.name + '.'); FB.logout(function(response) { console.log('Logged out.'); }); }); } else { console.log('User cancelled login or did not fully authorize.'); } }, {scope: 'email'}); </script>
Результаты в
Unsafe JavaScript attempt to access frame with URL https://www.facebook.com/dialog/oauth?api_key=158609350887973&app_id=158609350887973&client_id=158609350887973&display=popup&locale=en_US&method=permissions.oauth&origin=1&redirect_uri=http%3A%2F%2Fstatic.ak.fbcdn.net%2Fconnect%2Fxd_proxy.php%3Fversion%3D3%23cb%3Df2f7aed38%26origin%3Dhttp%253A%252F%url.com%252Ff3634c5da%26relation%3Dopener%26transport%3Dpostmessage%26frame%3Df9748b77&response_type=token%2Csigned_request&scope=email&sdk=joey from frame with URL http://url.com/gs/index.php. Domains, protocols and ports must match.
В javascript также появляется следующее всплывающее окно с ошибкой
Настройки моего приложения
Вы видите ошибку в своем всплывающем окне, потому что redirect_uri в URL-адресе авторизации не соответствует тому, что указано в URL вашего сайта в конфигурации приложения. Чтобы решить эту проблему, вам нужно включить опцию «Веб-сайт» в конфигурации приложения. Включите его, установив флажок рядом с «Веб-сайт», а затем введите http://Site.com (или независимо от вашего реального URL-адреса сайта) в текстовом поле «URL-адрес сайта». Этот URL-адрес должен соответствовать URL-адресу хоста, который вы предоставляете в redirect_uri. Это должно решить проблему всплывающего окна.
Что касается ошибки «Небезопасная ошибка JavaScript для доступа к фрейму», используете ли вы браузер веб-кита? Webkit выдает эти ошибки, но по большей части можно игнорировать. См. Это для получения дополнительной информации: ошибка «Небезопасная попытка JavaScript для доступа к фрейму с URL …» постоянно генерируется в инспекторе Chrome webkit
Используйте идентификатор пользователя в объекте ответа вместо «я», когда вы вызываете FB.api. Оба метода указывают на то, что у вас нет настроек домена вашего сайта в настройках приложения.
Мы делаем эту точную вещь во многих наших приложениях для вкладок, поэтому это определенно возможно.
Похоже, вы используете одно и то же значение для app_id и api_key. Они должны быть разными.
Вместо отображения ссылки ($ loginUrl) попробуйте перенаправить пользователя, например, используя функцию заголовка php или js location.href.
Да, это возможно. Читайте: http://www.masteringapi.com/tutorials/how-to-ask-for-extended-permission-in-your-facebook-application/32/