在我的网站上,我有一些带有下面按钮的文本,以便用户可以直接将该文本作为他们的 facebook 状态发布,我使用 Form POST 请求将该状态发布到我的 fbapp。
问题是当用户第一次使用此功能时,应用程序请求权限窗口在用户允许之后出现,然后我的 fbapp 页面出现,该页面在 FORM 操作中设置,并且我通过 POST 发送的文本作为 NULL 值发布到该页面
但是当用户再次使用此功能(即出现权限窗口 dnt)时,它直接转到我的 fbapp 页面文本成功发布为状态。
使用的代码是:
<?php if(isset($_POST['mystatus']))
{
$status = $_POST['mystatus'];
}
require_once 'facebook.php';
$facebook = new Facebook(array(
'appId' => xxxxxx,
'secret' => xxxxxxxxxx,
));
$user = $facebook->getUser();
if($user) {
} else {
$params = array(
'scope' => 'publish_stream'
);
$loginUrl = $facebook->getLoginUrl($params);
header('location:' .$loginUrl);
} ?>
<html>
<body>
if ($user) {
...................................
rest of the usual php sdk code here
....................................
}
else {
echo("<script> top.location.href='" . $loginUrl . "'</script>");
}
</body>
</html>
如果用户已经第二次授予应用程序和使用此功能的权限,则应用程序请求权限窗口不会出现文本状态,$_POST['mystatus']
并在用户 ID 上成功更新。
问题仅在用户允许应用程序后出现应用程序请求权限窗口时,然后$_POST['mystatus']
dnt 获取值和状态更新为NULL
用户 ID。
请帮助如何解决这个问题。
如果用户禁止或删除应用程序。 我也想知道如果用户 dnt 允许应用程序请求,我如何在页面上显示错误消息。& 如果以后使用过,请删除该应用程序,然后页面会显示此错误:
Fatal error: Uncaught OAuthException: Error validating access token: User xxxxxxxxxxx has not authorized application xxxxxxxxxxxxxxxxxxx. thrown in base_facebook.php on line 1106
有没有办法向用户显示自定义消息而不是这个错误?