在我的应用程序中,它将创建的照片发布到用户的“照片”。但是,无论何时用户使用应用程序,它都会创建照片并可以发布在相册中。
可以吗?或者我应该删除旧照片并作为新照片上传?或限制用户再次使用应用程序?还是我要遵循的其他任何事情?
在我的应用程序中,它将创建的照片发布到用户的“照片”。但是,无论何时用户使用应用程序,它都会创建照片并可以发布在相册中。
可以吗?或者我应该删除旧照片并作为新照片上传?或限制用户再次使用应用程序?还是我要遵循的其他任何事情?
可以吗?不,我不喜欢这样做,您很快就会被标记为垃圾邮件。
您应该删除旧照片并作为新照片上传吗?不,这需要更多权限,并且还有其他选择。
您是否应该限制用户再次使用应用程序?不。
还有什么我应该遵循的吗?是的。
我以类似的方式设置了我的一个应用程序,但这就是我最终所做的......
我将每个用户存储在我的数据库表 '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 分钟)
希望这可以帮助某人