친구 데이터를 로컬 데이터베이스로 가져 오는 앱을 만들고 있는데 문제가 없습니다.cron에서 사용자 프로필에 액세스
매일 로컬 데이터베이스의 사용자 프로필을 반복하고 친구 데이터를 업데이트하는 cron에서 실행되는 스크립트를 만들려고합니다.
PHP SDK를 사용하고 있습니다.
depreacte_offline_access 플래그를 활성화했습니다.
액세스 토큰이 60 일 이내에 자동으로 만료되거나 다른 작업을 수행해야합니까?
사용자가 동일한 브라우저에서 앱이나 페이스 북을 통해 서명하면 cron 스크립트에서 프로필 데이터를 검색 할 수 있습니까? 다음 데이터베이스에 저장
$access_token = $facebook->getAccessToken();
다음으로 액세스 토큰을 설정합니다 :
$facebook->setAccessToken($new_access_token);
내가 할 필요가 가진 액세스 토큰 PIN이있다 생각에 수정나요 그런 다음 프로필을 다시 보겠습니다.
$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;
}
}
}
}
?>
기본적으로 맞지만 토큰은 다른 이유로 인해 무효화 될 수 있습니다 (내 답변에서 언급했듯이). –
내가 알기로 사용자가 사이트에서 유효한 액세스 토큰을 얻으면 cron 스크립트는 자신의 프로필에 액세스 할 수 있지만 액세스 토큰의 만료 시간은 갱신 할 수 없게됩니다. 따라서 주된 문제는 offline_access 플래그를 활성화하면 자동으로 만료 날짜가 60 일 동안 지속되지 않는 것으로 보이며 내가해야 할 일이 확실하지 않은 것입니다. 그리고 다른 점은 액세스 토큰이 무효화 될 수있는 완전히 문서화 된 이벤트 목록이없는 것 같습니다. –
귀하의 의견을 삭제하지 마십시오. 단지 나중에 읽는 사람이 혼란스럽게 만듭니다. 나는 더 많은 정보를 가지고 나의 대답을 편집했다. –