0

我正在尝试发布到一些用户墙,我有所需的权限,但是,一些令牌是无效的,有些人只授权了 oauth 的第一步,而不是发布流,所以我得到了一堆错误,这个是代码:

$config = array(
    'appId' => APP_ID,
    'secret' => APP_SECRET,
    'cookie' => false,
);
$facebook = new Facebook($config);


$query = "SELECT * FROM `facebook-users` WHERE NOT token = '';";
$result = mysqli_query($con, $query);


while ($row = mysqli_fetch_array($result)) {


     // success

     if (!empty($row['token'])) {
         $attachment = array(
         'access_token' => $row['token'],
         'message' => $message,
         'name' => $title,
         'link' => $link,
         'description' => $desc,
         'picture'=>$pic,
         'actions' => json_encode(array('name' => $action_name,'link' => $action_link))
         );

         $post_url = '/' . $row['uid'].'/feed';
         $status = $facebook->api($post_url, "post", $attachment);

         $count++;
}

echo $count;
die();
?>

那么我如何对这些基本错误进行错误检查,并在它们发生时继续?

4

3 回答 3

0

你已经明白了:

Uncaught OAuthException: (#200)

因此:将所有内容放在 try/catch 块中,并从 FB API 中正确捕获这些异常。这是一项艰苦的工作,因为没有像 Google API 这样的可能错误的文档,所以您需要生成错误并查看日志。

于 2013-05-29T15:38:11.690 回答
0

如果错误只是在您没有发布到用户墙所需的权限时出现,为什么不在 while 循环中检查它呢?

就像是:

if(!($facebook->api($post_url, "post", $attachment))) continue;
于 2013-05-29T13:16:44.190 回答
0

您可能需要一个长寿令牌。您可以在/id/permissions检查权限,搜索 publish_stream。对于测试,您可以使用Graph API Explorer 控制台

于 2013-05-29T13:17:37.017 回答