我已经开始开发一个有facebook集成的网站,它在使用Javascript SDK时似乎可以正常工作。我显示用户名称和个人资料图片很好。然后我在各处阅读使用JS进行身份验证连接的最佳方法,并使用PHP SDK以更简单的方式运行API。我使用哪个Facebook登录按钮,为什么?
所以我面临着使用两种不同的登录方法之一,但对于我的生活,我不能只是得到我想要的东西。它看起来好像文档没有清楚地解释他们描述的任何事情的利弊,以及什么情况最适合于什么方法。
例如:
<?php if (!$user) { ?>
<div class="fb-login-button" data-perms="email,user_birthday">Login with Facebook</div>
<?php } else { ?>
Your user profile is
<pre>
<?php //print htmlspecialchars(print_r($user_profile, true)) ?>
</pre>
<?php echo $user_profile['name']; ?>
<?php
$data = array("message" => "Hello Woghfd!");
$status = $facebook->api("/me/feed", "POST", $data);
//echo $user;
?>
<?php }
但后来也有其他的按钮:
<fb:login-button scope="email,user_about_me">Connect Facebooks</fb:login-button>
然后调用JS的功能的FB.login。
我不会介意这一点,但我测试使用PHP SDK张贴到用户的墙与此代码的能力:
$status = $facebook->api("/me/feed", "POST", $data);
,我不断收到错误消息:
致命错误:未捕获的OAuthException:(#200)用户未授权应用程序执行此操作
这是我访问我的网站时。然后,当我注销并使用我的网站登录按钮重新登录时,它可以正常工作。我明显不想让每个访问该网站的用户都发生这种情况。
有人可以请解释所有这些按钮是什么意思?我花了几天时间在互联网上寻找解释,但是当考虑到SDK更新时我会感到困惑,因为我不知道什么是最好的方法。
谢谢。
是的,这是有道理的,但我已阅读所有这些。我确实要求发布publish_stream权限,然后将其删除,以查看会发生什么。以前使用该应用程序的人仍然可以将事情发布到他们的墙上,但对于新人来说,它会抛出我所陈述的错误。这很烦人,因为我想在我自己的Facebook帐户上测试人们第一次访问该网站时获得的视图,但没有任何已经被接受的权限?是否有可能删除他们接受的每个人的权限? – JamesG 2012-03-07 14:28:01
如果您拥有该权限并且有人授权,那么他们仍然拥有该权限并将继续拥有该权限,直到他们移除该应用或撤销该权限为止。您自己写的新用户将不会拥有此权限,因此该应用无法在自己的墙上张贴。发布在用户墙上的唯一方法是获得该许可。如果你想在他们授权你的应用之前测试它的外观,那么你可以只为你的用户删除这个应用,或者只是撤销权限:隐私设置>应用和网站(编辑设置)>你使用的应用(编辑设置) – 2012-03-07 14:47:44