-1

在我的应用程序中,它将创建的照片发布到用户的“照片”。但是,无论何时用户使用应用程序,它都会创建照片并可以发布在相册中。

可以吗?或者我应该删除旧照片并作为新照片上传?或限制用户再次使用应用程序?还是我要遵循的其他任何事情?

4

1 回答 1

0

可以吗?,我不喜欢这样做,您很快就会被标记为垃圾邮件。

您应该删除旧照片并作为新照片上传吗?,这需要更多权限,并且还有其他选择。

您是否应该限制用户再次使用应用程序?不。

还有什么我应该遵循的吗?是的。

我以类似的方式设置了我的一个应用程序,但这就是我最终所做的......

我将每个用户存储在我的数据库表 'users' 中,其中一列用于 Facebook id ('fbid'),一列用于该用户上次发布的时间 ('lastpost')。在我的数据库中,“lastpost”的默认值为 0

我在所有 Facebook 应用程序中使用这一部分来跟踪/插入新用户:

$seeif = mysql_num_rows(mysql_query("SELECT id FROM users WHERE fbid='$user' LIMIT 1"));

if ( $seeif == "1" ) {
// already exists
} else {
// insert new user
mysql_query("INSERT INTO users (fbid) VALUES('$user' ) ") 
or die(mysql_error()); 
}

这部分将查询该表以查看他们的“lastpost”是什么时间(如果他们还没有发布,它将返回表默认值 0 :

$adesult = mysql_query("SELECT lastpost FROM users WHERE fbid='$user' LIMIT 1") 
or die(mysql_error());  
while($ardw = mysql_fetch_array( $adesult )) {
$alast = $ardw['lastpost'];

这是我决定是否要发布的地方,如果是,则使用当前用户的“lastpost”的新值更新数据库。

注意:我目前将其设置为不超过每 5 分钟(300 秒)更改第一行以满足您的要求的频率。

$mathtime = time() - 300;

if ( $alast > $mathtime ) {
// do nothing, user has posted in the past 5min
} else {
// post
$dothepost=1;
$currenttime = time();
mysql_query("UPDATE users SET lastpost='$currenttime' WHERE fbid='$user' LIMIT 1") 
or die(mysql_error());
}

最后是图片帖子的代码:

if ( $dothepost == "1" ) {

if ($user) {
      try {
$path_to_image = "/home/path/to/your/image/goes/here.jpg";
$args = array(
  'message' => 'Hello world!',
  'image'   => '@' . realpath($path_to_image),
);

$data = $facebook->api('/me/photos', 'post', $args);

      } catch (FacebookApiException $e) {
        error_log($e);
        $user = null;
      }
}

} else {
// noth
}

从您的问题来看,您的页面是否每次都显示/发布相同的图像,或者它是否是动态的并显示/发布不同的图像,并不清楚。如果您每次都显示相同的图像:

改变:

if ( $dothepost == "1" ) {

到:

if ( $alast == "0" ) {

否则,每次访问该页面时,您最终都会得到一张包含相同图像的相册(只要每次访问相隔 5 分钟)

希望这可以帮助某人

于 2012-09-14T07:42:32.153 回答