我有一个页面标签应用程序,我希望它在第一次用户访问标签时请求权限(使用用户的电子邮件)。
我认为这应该足够简单了,但是我已经在hundrends q& a,教程,php / js apis,新老方法/功能/技术中迷失了。
我甚至不确定哪种方式适合我的需要。
我的应用程序正在做的事情很简单:
if (user_has_liked_page())
include ("fan.php");
else
include ("guest.php");
我想要做的就是拥有这个fb" popup"请求权限 - 最好仅限于喜欢该页面的用户。
我恳请你不要只回复facebook docs / api的所有网址,我已尝试了很多这些网址。
如果可能的话,我想知道所有这些技巧中哪一种是适合的情况 也欢迎举例。
提前致谢。
答案 0 :(得分:2)
对于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