我不确定标题是否合适。
让我描述一下我的想法。
我不熟悉 facebook API。
你看,我在一个网站上有这个页面。我希望这个页面只对我在 facebook 上的朋友可见。有没有办法我可以做到这一点?如果查看未登录或不是我在 Facebook 上的朋友,则发送错误 404。
是的,有可能,只需通过包含获取 facebook 访问令牌和用户 facebook ID 的代码的脚本访问该页面,如果有访问令牌和 FB ID,而不是在您只想为您的朋友显示的页面上重定向用户。在该页面中,首先将获得的 facebook id 与您朋友的 id 匹配(使用 facebook api 存储在 db 中)。如果 ids 与存储的匹配,则加载您的脚本,否则将其重定向到 404 html 页面或其他要显示的 url。
是的,这是可能的
显而易见的方法是使用 facebook SDK 让您的朋友登录,但这需要在您的网站上主动登录。一旦他们登录,很容易查看他们是否在您的朋友列表中。
一个不太明显的方法是使用这里描述的东西 http://www.tomanthony.co.uk/blog/detect-visitor-social-networks/
但是与您的个人资料相结合,如果您在仅与朋友分享的图像上获得 ok 回复(200 状态代码),然后回电以加载另一个页面。
这 ISNT 万无一失,因为您依赖 javascript 不被篡改,但需要的用户活动较少
是的,这是很有可能的。您需要创建您的网站并将其 URL 添加到 facebook 应用程序(创建 facebook 应用程序非常容易,只需转到 facebook 开发人员并按照说明进行操作)。
在你创建一个应用程序之后
您需要做的就是将用户重定向到 OAuth 对话框,该对话框将要求用户接受并添加应用程序,为您提供用户详细信息。
这是一个简单的教程https://developers.facebook.com/docs/reference/dialogs/oauth/
用户接受后,他将被重定向到您必须指定的 URL(请参阅教程)
或者你可以这样做:
使用 facebook php sdk 并以这种方式访问用户信息 https://developers.facebook.com/docs/php/howto/profilewithgraphapi/
在这两种方式中,您都可以获取用户详细信息,然后您可以根据您的朋友个人资料详细信息检查它们,并且只允许匹配它的用户并使用header("any.url.com");
php 命令将其余用户重定向到任何其他页面。
如果你仍然不明白,请告诉我,我会详细说明。
现在您已准备好使用 facebook API
require_once("facebook.php");
$config = array();
$config['appId'] = 'YOUR_APP_ID';
$config['secret'] = 'YOUR_APP_SECRET';
$facebook = new Facebook($config);
var_dump($facebook);
*有两种方法可以做到这一点。