私のアプリケーションでは、作成した写真をユーザーの「写真」に投稿します。しかし、ユーザーがアプリケーションを使用するときはいつでも、それが写真を作成し、フォトアルバムに投稿することができます。
大丈夫ですか?または、古い写真を削除して新しいものとしてアップロードする必要がありますか?または、ユーザーがアプリケーションを再度使用することを制限しますか?または私が従うべき他の何か?
私のアプリケーションでは、作成した写真をユーザーの「写真」に投稿します。しかし、ユーザーがアプリケーションを使用するときはいつでも、それが写真を作成し、フォトアルバムに投稿することができます。
大丈夫ですか?または、古い写真を削除して新しいものとしてアップロードする必要がありますか?または、ユーザーがアプリケーションを再度使用することを制限しますか?または私が従うべき他の何か?
大丈夫ですか?いいえ、私はそれをしたくありません。すぐにスパムとしてフラグが立てられます。
古い写真を削除して、新しい写真としてアップロードする必要がありますか? いいえ、これにはより多くの権限が必要であり、代替手段があります。
ユーザーによるアプリケーションの使用を再度制限する必要がありますか? いいえ。
他にフォローすべきことはありますか?はい。
私は自分のアプリの1つを同様の方法でセットアップしましたが、これが代わりにやったことです...
Facebook ID (「fbid」) の 1 つの列と、そのユーザーの最後の投稿 (「lastpost」) の時間の 1 つの列を使用して、各ユーザーをデータベース テーブル「users」に保存します。私のデータベースでは、「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());
}
この部分は、そのテーブルをクエリして、「最終投稿」が何時だったかを確認します (まだ投稿していない場合は、テーブルのデフォルトの 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 分間隔である場合)。
これが誰かを助けることを願っています