2012-01-10 4 views
1

私は自分の壁にカスタムアプリケーションでステータスを投稿することができましたが、私がしたいことは、ステータスをスケジュールして、指定された日時に掲示することです。phpとcUrlでウォールポストをスケジューリングする方法

私のアプリを閉じると、問題は、スクリプトが中止されたことです。 今すぐ動作します。私はignore_user_abort(true)とsleep()を使用しています。

また、指定された日時が経過するとset_time_limit(1)も使用されるため、スクリプトは停止します。

私はこれが嘘つきコーディングであると感じ、これを行うより良い方法があるかどうかを知りたいと思っていますか?

ここで私が今使っているコードです:

<?php 
ignore_user_abort(true); 
$token=$_GET["access_token"]; 
$attachment = array(
    'access_token' => "$token", 
    'message' => "deze post moet om 14.14 online komen", 
    'name' => "testpost", 
    'link' => "http://myurl.be/", 
    'description' => "Write here your description", 
    'picture'=> "http://myurl/assets/images/layout/logo.png"); 

date_default_timezone_set('Europe/Belgrade'); 
$time= date('d/m/Y H:i'); 
if ("10/01/2012 14:14" < $time){ 
set_time_limit(1); 
$result = $facebook->api('/me/feed/','post',$attachment); 
}else{ 
sleep(60); 
$curl = curl_init(); 
curl_setopt ($curl, CURLOPT_URL, "https://www.myurl.com/tests/facebooklogin/post.php?access_token=".$token); 
curl_exec ($curl); 
curl_close ($curl); 
} 
print $result; 
?> 

答えて

2

をあなたは(MySQLのような)データベースであなたのポストのために必要なすべての情報(テキスト、リンク、説明など)を格納することができ、セットアップは取得するPHPスクリプトはcronによって定期的に呼び出され、スクリプトが実行されるまでに投稿する必要があるデータベースからのすべての投稿を取得します。

ただし、アクセストークンは数時間後/ 1日後またはユーザーがパスワードを変更した後に有効期限が切れることに注意してください。 「offline_access」権限がない限り、トークンは期限切れになりません。

+0

私はBjornがここに書いたものだけを行う現在のプロダクションアプリを持っています。これがあなたの答えです。しかし、ユーザーアクセストークンが期限切れになっても、Facebookはそれに対して「修正」をしています。 publish_stream権限をリクエストしている場合、アプリのアクセストークンを使用すると言います。ただし、ユーザーがパスワードを変更すると、アプリを再認証する必要があります。 – DMCS

+0

そして、アクセストークンはどこにセッションに保存しますか?私は実際にどのように私がcronでパラメータを使ってスクリプトを実行できるかを知ることができないからです。 – samn

+0

ちょうどデータベースにそれを保存してください... –

関連する問題