2

在我的网站上,我有一些带有下面按钮的文本,以便用户可以直接将该文本作为他们的 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

有没有办法向用户显示自定义消息而不是这个错误?

4

1 回答 1

0
于 2012-09-23T14:45:05.797 回答