【发布时间】:2012-09-18 07:58:55
【问题描述】:
在我的网站上,我有一些带有下方按钮的文本,以便用户可以直接将该文本作为他们的 facebook 状态发布我使用 Form POST 请求将该状态发布到我的 fbapp。
问题是当用户第一次使用此功能时,应用程序请求权限窗口出现在用户 ALLOW 之后,然后我的 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 获取值并且状态更新为用户 ID 上的NULL。
请帮助解决这个问题。
如果用户禁止或删除应用程序。 我也想知道如果用户 dnt 允许应用程序请求,我如何在页面上显示错误消息。 & 如果以后使用过,请删除应用程序,然后页面会显示此错误:
Fatal error: Uncaught OAuthException: Error validating access token: User xxxxxxxxxxx has not authorized application xxxxxxxxxxxxxxxxxxx. thrown in base_facebook.php on line 1106
有没有办法向用户显示自定义消息而不是这个错误?
【问题讨论】:
-
您是否尝试过使用 PHP try/catch 解决潜在问题?
-
@donutdan4114 谢谢我以前从未使用过该功能,请您展示一些如何使用此功能的示例。我的问题是应用程序批准的 facebook 页面&当用户允许我的应用程序然后 facebook 重定向回我的脚本页面&我的所有表单发布变量在这个重定向中丢失。如果用户已经批准了我的应用程序。 & 第二次执行此脚本,然后可以成功发布到墙上。