友達のデータをローカル データベースにインポートするアプリを作成していますが、正常に動作しています。
ローカル データベース内のユーザー プロファイルを反復処理し、フレンド データを更新する毎日の cron によって実行されるスクリプトを作成しようとしています。
PHP SDK を使用しています。
depreacte_offline_access フラグを有効にしました。
これは、アクセス トークンが 60 日で自動的に期限切れになるということですか、それとも他に何かする必要がありますか?
ユーザーが同じブラウザーでアプリまたは facebook からサインアウトした場合でも、cron スクリプトからプロファイル データを取得できますか?
私がする必要があるのは、次の方法でアクセストークンを取得することだけだと考えて正しいですか:
$access_token = $facebook->getAccessToken();
それをデータベースに保存し、次のようにアクセス トークンを設定します。
$facebook->setAccessToken($new_access_token);
次に、プロファイルを取得します
$facebook->getUser('/me');
?
また、アクセス トークンの有効期限を確認するにはどうすればよいですか?
以下は、プロファイルを反復して取得するスクリプトですが、ブラウザーで実行すると、現在サインインしているユーザーに対してのみ機能するか、「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;
}
}
}
}
?>