вкладка страницы facebook oauth - PullRequest
       5

вкладка страницы facebook oauth

0 голосов
/ 06 декабря 2011

У меня есть приложение на вкладке страницы, и я хочу, чтобы оно запрашивало разрешение (для использования электронной почты пользователя) при первом посещении вкладки пользователем.
Я думал, что это должно быть достаточно просто, но я заблудился в сотнях вопросов, учебных пособиях, php / js apis, старых и новых методах / функциях / техниках. Я даже не уверен, какой именно способ удовлетворить мои потребности.

То, что делает мое приложение, очень просто:

if (user_has_liked_page())
    include ("fan.php");
else
    include ("guest.php");

То, что я пытаюсь сделать, это «всплывающее» fb, которое запрашивает разрешение - желательно только для пользователей, которым нравится страница.

Я прошу вас не просто отвечать со всеми URL-адресами документации / API Facebook, я перепробовал многие из них.

Если возможно, я бы хотел знать, какой из этих методов подходит для ситуации.
Примеры тоже приветствуются.

Заранее спасибо.

1 Ответ

2 голосов
/ 06 декабря 2011

Для решения JS вы можете попробовать что-то похожее на следующее в вашем файле fan.php

<div id="fb-root"></div>
<script>
window.fbAsyncInit = function() {
FB.init({
  appId      : 'YOUR_APP_ID', // App ID
  channelUrl : '//WWW.YOUR_DOMAIN.COM/channel.html', // Channel File
  status     : true, // check login status
  cookie     : true, // enable cookies to allow the server to access the session
  oauth      : true, // enable OAuth 2.0
  xfbml      : true  // parse XFBML
});

// Additional initialization code here
};

// Load the SDK Asynchronously
(function(d){
 var js, id = 'facebook-jssdk'; if (d.getElementById(id)) {return;}
 js = d.createElement('script'); js.id = id; js.async = true;
 js.src = "//connect.facebook.net/en_US/all.js";
 d.getElementsByTagName('head')[0].appendChild(js);
}(document));
</script>

<button id="fb-login">Login & Permissions</button>

<script>
document.getElementById('fb-login').onclick = function() {
var cb = function(response) {
if (response.status === 'connected') {
  //user is logged in here and you have email scope already
} else {
  alert('Click the "Login and Permissions" button so we can send you emails');
}
};
FB.login(cb, { scope: 'email' });
};
</script>

Содержимое channel.html должно быть просто

 <script src="//connect.facebook.net/en_US/all.js"></script>

У меня естьУ меня не было времени проверить это, и я забрал большую часть из официальных документов.Я знаю, ты сказал, что не хочешь ссылки.Но вы можете найти эту страницу полезной

https://developers.facebook.com/docs/reference/javascript/

, а также есть тестовая консоль, где вы можете поиграть с javascript api, расположенной здесь

https://developers.facebook.com/tools/console/

...