在我的应用程序中,它将创建的照片发布到用户的“照片”。 但是只要用户使用应用程序就可以创建照片,并且可以在相册上发布。
没关系?或者我应该删除旧照片并上传为新照片?或限制用户再次使用应用程序?或者其他什么我不跟随?
答案 0 :(得分: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分钟)
希望这有助于某人