2012-09-13 43 views
-1

在我的应用程序中,它将创建的照片张贴到用户的“照片”中。 但是,当用户使用应用程序时,它会创建照片并可以发布到相册上。Facebook应用程序 - 发布照片

可以吗?或者我应该删除旧照片并上传为新的?或限制用户再次使用应用程序?或其他任何我不寒而栗?

+0

啊,你究竟想知道什么......? – CBroe

回答

0

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

是否应该删除旧照片并上传为新照片? ,这需要更多的权限,并有其他选择。

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

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

我有我的应用程序以类似的方式建立的一种,但是这是我落得这样做,而不是...

我每个用户存储在我的数据库表“用户”与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分钟)

何pe这可以帮助别人

+0

感谢阿里尔为这个想法 –

相关问题