foreach($ret_obj as $person)
{
$a = $person['uid'];
echo $a.'<br />';
$page_feed = $facebook->api(
'/'.$a.'/feed',
'POST',
array(
'message' => 'Message',
'name' => 'Name',
'description' => 'description',
'link' => ''.FB_BASE_URL.'',
'picture' => 'http://link.edu/pic.jpg',
'access_token' => ''.$fbme[access_token].''
)
);
//if $page_feed is defined it prints yes if not defined prints no
if($page_feed){echo 'yes<br />';}
elseif(!$page_feed[id]){echo 'no<br />';}
}
有人甚至不向他们的朋友打开他们的墙。然后我想检查$page_feed
是真还是假。我试着在最后两行做这个。我试过isset()
。无论我做了什么,我都无法打印no
。
发布时,$page_feed
变量会返回如下内容:533444332_475819545445666
并尝试下面的代码,但它会再次给我一个空白页。
if($page_feed){echo strstr($page_feed[id],'_').'<br />';}
elseif(strstr($page_feed[id],'_')){echo 'no<br />';}
答案 0 :(得分:0)
如果您当前的用户不允许在其他人的墙上发帖,那么尝试这样做会导致异常 - 所以您必须使用
try { … } catch(FacebookApiException $e) { … }
正确地对此作出反应,否则你的脚本将因未捕获的异常而死亡。
有人甚至不向他们的朋友打开他们的墙。
如果它只是您尝试发布的当前用户的朋友,那么如果他们允许,可能最好先检查一下。
您可以使用FQL执行此操作 - user
表中有一个名为can_post
的字段 - “查看者是否可以发布到用户的墙上。” < / p>
SELECT uid FROM user WHERE uid IN
(SELECT uid1 FROM friend WHERE uid2 = me())
AND can_post
此查询只会为您提供允许您当前用户发布到他们墙上的朋友的ID。将其与您尝试发布的用户ID列表相交 - 并且您不必在发布必须失败的过程中进行无效的尝试,这毕竟仍然会花费HTTP请求的时间。
(当然,您应该捕获可能的API异常,因为总会有其他事情可能出错,并且您不希望您的脚本在这些情况下死亡。)