#facebook #facebook-javascript-sdk #facebook-ui
#Facebook #facebook-javascript-sdk #facebook-ui
Вопрос:
Я хочу попросить пользователя предоставить разрешение «publish_stream» моему приложению с помощью facebook javascript sdk.
Я инициализирую его следующим образом:
FB.init({
appId : '203702512703',
status : true, // check login status
cookie : true, // enable cookies to allow the server to access the session
xfbml : true, // parse XFBML
channelURL : 'http://mydomain.com/channel.php', // channel.html file
oauth : true // enable OAuth 2.0
});
И мой вызов FB.ui выглядит так:
FB.ui({
client_id: '203702512703',
method: 'oauth',
scope: 'publish_stream',
redirect_uri: 'http://mydomain.com/',
response_type: 'token',
display: 'dialog'
});
Если я изменю «диалоговое окно» на «всплывающее окно», оно будет работать отлично. Но если я укажу ‘dialog’ или оставлю эту опцию, он покажет мне fb-div, но с анимацией загрузки (например, так: http://p.iqs.me/t1c4j ) и контент никогда не загружается.
Что я делаю не так?
ОБНОВЛЕНИЕ: я нашел эту страницу http://developers.facebook.com/docs/reference/dialogs/#display в нем говорится следующее об использовании «iframe» в качестве отображения: «Из-за риска взлома кликов это разрешено только для некоторых определенных диалоговых окон и требует, чтобы вы передали действительный access_token».
Ничего подобного не говорится о «диалоговой» мысли, но и iframe, и dialog дают один и тот же плохой результат.
Как мне передать access_token?
Комментарии:
1. У вас проблема, похожая на эту ошибку ?
2. Кажется, немного похоже. Но если это ошибка, я думаю, от нее пострадают тысячи приложений. Более вероятно, что я делаю здесь что-то не так.
Ответ №1:
‘popup’ является обязательным для метода: ‘oauth’ или FB.login для javascript SDK из-за безопасности (взлома и фишинга). Я бы посоветовал в любом случае использовать FB.login для получения разрешений или аутентификации, потому что это удобнее.
надеюсь, это поможет
Комментарии:
1. Хорошо. Спасибо 🙂 Это не очень хорошо документировано.
Ответ №2:
Существует также несоответствие в том, как вы можете использовать display: iframe для FB.login в зависимости от того, находитесь ли вы на вкладке или на холсте. На вкладке вам не нужен access_token, а на холсте вам нужен.
Итак, на холсте вы застряли либо с блокировкой всплывающих окон, либо с большим процентом пользователей, отказывающихся предоставлять базовые разрешения для чего-то такого простого, как публикация на их собственной стене, которую они инициировали. Я думаю, что FB нужно исправить это как можно скорее, но у меня уже несколько месяцев регистрируется ошибка, и никаких признаков изменений не было.