我开发了一个Facebook应用程序,我使用PHP-sdk我使用official documentation中描述的算法允许用户加入我的应用程序,然后将他/她的user_id存储在数据库中。我的应用程序使用publish_stream权限,因此它会自动将帖子发布到用户的时间线。
我发现应用程序始终无法发布数据库中某些注册用户的帖子(不是全部)。我对此进行了说明,因为他们可能会在批准所需权限之前注册到数据库。以下是我在Facebook api官方文档中使用的代码的蓝图:
<?php
require_once('php-sdk/facebook.php');
$config = array(
'appId' => 'YOUR_APP_ID',
'secret' => 'YOUR_APP_SECRET',
);
$facebook = new Facebook($config);
$user_id = $facebook->getUser();
?>
<html>
<head></head>
<body>
<?php
if($user_id) {
try {
/* $user_profile = $facebook->api('/me','GET');
echo "Name: " . $user_profile['name'];*/
//Here I run the code to save.
saveTheUserIdToRecordInTheDB($user_id);
//hypothetical function to save
} catch(FacebookApiException $e) {
// If the user is logged out, you can have a
// user ID even though the access token is invalid.
// In this case, we'll get an exception, so we'll
// just ask the user to login again here.
$login_url = $facebook->getLoginUrl();
echo 'Please <a href="' . $login_url . '">login.</a>';
error_log($e->getType());
error_log($e->getMessage());
}
} else {
// No user, print a link for the user to login
$login_url = $facebook->getLoginUrl();
echo 'Please <a href="' . $login_url . '">login.</a>';
}
?>
</body>
</html>
我的主要问题是:如果用户点击了登录链接,然后他/她因任何原因没有继续(丢失互联网连接,拒绝授予该应用的权限,等等,是否可能假设函数 saveTheUserIdToRecordInTheDB()运行并将该用户的Facebook ID保存到数据库?
或对于有些用户不是可发布的帖子有什么解释?