今天我用 Facebook API 尝试了几乎所有的东西。我正在使用 PHP SDK。它可以作为用户、页面和应用程序登录。
我现在已经做了最简单的登录系统:
登录.php
$app_id = "xx";
$app_secret = "xx";
$my_url = "continue.php";
session_start();
// TOESTEMMING VRAGEN
$code = $_REQUEST["code"];
if(empty($code)) {
$_SESSION['state'] = md5(uniqid(rand(), TRUE)); // CSRF protection
$dialog_url = "https://www.facebook.com/dialog/oauth?client_id="
. $app_id . "&redirect_uri=" . urlencode($my_url) . "&state="
. $_SESSION['state'] . "&scope=manage_pages";
echo("<script> top.location.href='" . $dialog_url . "'</script>");
}
在 continue.php 我有这个代码:
session_start();
if($_SESSION['state'] && ($_SESSION['state'] === $_REQUEST['state'])) {
$graph_url = "https://graph.facebook.com/me/accounts?access_token="
. $params['access_token'];
$accounts = json_decode(file_get_contents($graph_url));
print_r($accounts);
} else {
echo("The state does not match. You may be a victim of CSRF.");
}
我正在登录,我可以授予访问权限,但是当我继续时,我收到以下消息:
stdClass Object ( [error] => stdClass Object ( [message] => 必须使用活动访问令牌来查询有关当前用户的信息。[type] => OAuthException [code] => 2500 ) )
我试图实现的是:在我网站的管理部分,我想创建一个对话框,管理员可以在其中将更新作为页面帐户发布到 facebook 页面。我也尝试以应用程序登录,但我不知道这是否是正确的解决方案。
我在网上找不到关于哪种解决方案需要哪种方法的教程。作为应用程序登录的优点是管理员不需要拥有 facebook 帐户。但是我可以(作为应用程序)将更新发布到 Facebook 页面吗?
对不起,我有点困惑。谢谢。