友人のデータをローカルデータベースにインポートするアプリをビルドしていますが、うまくいきます。cronからユーザープロフィールにアクセスする
毎日のcronによって実行されるスクリプトを作成しようとしています。このスクリプトは、ローカルデータベースのユーザープロファイルを反復して、友人データを更新します。
私はPHP SDKを使用しています。
私はdepreacte_offline_accessフラグを有効にしました。
これは、アクセストークンが60日以内に自動的に期限切れになることを意味しますか、それとも何か他のことをする必要がありますか?
ユーザーが同じブラウザでアプリまたはFacebookからサインアウトすると、引き続きcronスクリプトからプロファイルデータを取得できますか?
私は私が行うために必要なすべてをしてアクセストークンをretriveであることを考えるに修正午前:その後、データベースに格納し、その後でアクセストークンを設定
$access_token = $facebook->getAccessToken();
:
$facebook->setAccessToken($new_access_token);
次にプロファイルを再測定します
?
また、アクセストークンの有効期限を確認するにはどうすればよいですか?
以下は、プロファイルを反復して取得するスクリプトですが、ブラウザで実行すると、現在ログインしているユーザーのみが動作するか、「OAuthException:アクセストークンの検証中にエラーが発生します。ユーザーがログアウトし。」
<?php
require_once(THEME_INCLUDES_PATH . 'facebook.php');
$config = array();
$config['appId'] = APP_ID;
$config['secret'] = APP_SECRET;
$config['fileUpload'] = false; // optional
$facebook = new Facebook($config);
$sql = "SELECT `access_token` FROM `fb_user`";
$result = $db1->db_query($sql);
while($details = $db1->db_fetch_array($result)){
if($details['access_token']){
$facebook->setAccessToken($details['access_token']);
$fb_user = $facebook->getUser('/me');
if($fb_user){
try {
$fb_profile = $facebook->api('/me');
print_r($fb_profile);
}
catch (FacebookApiException $e){
echo $e;
$fb_user = false;
}
}
}
}
?>
これは基本的には正しいことですが、他の理由でトークンを無効にすることができます(私の回答で述べたように)。 –
私が理解していることは、ユーザーがサイトから有効なアクセストークンを取得すると、cronスクリプトは自分のプロファイルにアクセスできますが、アクセストークンの有効期限を更新できないことです。したがって、主な問題は、offline_accessフラグを有効にすると、自動的に有効期限が60日間続くようには見えないため、何をする必要があるのか分かりません。もう一つは、アクセストークンが無効になる可能性のある完全に文書化されたイベントリストがないようです。 –
あなたのコメントを削除しないでください。ちょうどそれを読んだ人に紛らわしいだけです。私はより多くの情報で私の答えを編集しました。 –