프레임 워크로 Yii를 사용하고 있지만 생각하지 못합니다.페이스 북에서 두 개의 다른 액세스 토큰을 제공합니다, PHP SDK
이 시점에서 나는 사용자가 처음 로그인 할 때 PHP 사용자 인터페이스 (SDK)를 사용하여 계정 정보를 얻습니다. 하지만 1 ~ 2 시간이 지나면 액세스 토큰이 만료되고 오류가 발생합니다 (이상한 것은 아닙니다).
하지만 여기에 내가 갇혀서 나는 2 가지 해결책을 생각할 수 있지만 둘 다 어떻게해야하는지 전혀 모른다.
내 응용 프로그램 사용자에 로그인하려면 FacebookLogin()
행동을 보낼 수있다 : 첫째로 내 코드의 일부를 소개하자 사용자가 적절한 권한을 부여 후
public function actionFacebookLogin()
{
$my_url = 'http://***.***.nl/app/facebook-popup.php';
$permissions = 'read_insights, publish_actions, manage_pages, email';
$loginUrl = Yii::app()->facebook->getLoginUrl(array('scope' => $permissions, 'display' => 'popup', 'redirect_uri' => $my_url));
echo '<script> window.location="'.$loginUrl.'"</script>';
}
, 사용자는 Login()
행동을 보낼 수있다 :
public function actionLogin() {
$facebookID = Yii::app()->facebook->getUser();
$accessToken = Yii::app()->facebook->getAccessToken();
}
(login 액션의 나머지는 중요하지 않습니다.)이 지점 ->getAccessToken()
재미에 지금
ction은 짧은 access time을 제공합니다. 사용자가 내 페이지에서 1 ~ 2 시간 이상 기다리지 않으면 괜찮을 것입니다. "라고 말하면서 사용자가 로그 아웃하고 다시 로그인해야합니다. 그런 다음 나는 약 10 분 후에도 오류가 발생합니다. 나에게 필요한 권한을 부여 할 새로운 access_token이. 그래서
이 문제를 해결하기 위해 내가이 사용하기에 적합한 방법을 찾을 수없는 생각이 개 솔루션을 생각했다.
우선 가장 쉬운 방법 중 하나. 내가 갈 Graph API Explorer 및 access_token 내 애플 리케이션을 얻을 수있는 정보를 얻을 제공합니다,하지만 그 access_token 그것을 디버깅하려고하면 그것을 보여줍니다 access_token experation 날짜가 있습니다.하지만 내가 동일한 Graph API Explorer 사용하고 자체 access_token 생성 할 때 나는 access_token은 전혀 만료되지 않습니다.
으로 내가 API Explorer에 가서 내 웹 애플리케이션에 응용 프로그램을 변경 Graph API Explorer 내 handlings에 업데이 트를 물었다. 그런 다음 자동으로 채워지는 일반 access_token이 있습니다. "debug"버튼을 누르면이 access_token에 실험 날짜가 있음을 알 수 있습니다. 그런 다음 Explorer로 돌아가서 "액세스 토큰 가져 오기"버튼을 누르면 다른 하나가 나타납니다. "debug"버튼을 다시 누르면이 access_token에 실험 날짜가 없습니다. 내가 이걸 쓸 수 있다면 좋을거야.
내 첫 번째 해결책은 가능한 한 마지막 access_token을 가져 와서 데이터베이스에 저장하는 것입니다. 그런 다음 필요할 때 Facebook PHP SDK ->setAccessToken()
함수를 사용하십시오. 그러나 어떻게? 나는 단서가 없다!
두 번째 해결책은 내가 생각한 것입니다. init()
우리는 유효한 access_token을 얻었고 새로운 액세스 티켓을 얻지 못했거나 만료 된 현재 액세스 권한을 새로 고치는 경우 모든 작업을 확인하는 기능을 만들 수도 있습니다. 이 첫 번째 솔루션을 더 많은 서버 부하를 누른 다음 첫 번째 솔루션과 동일한 방법을 가지고 이것을 달성하는 방법.
나는 주된 문제는 페이스 북의 문서가 좀 이해하기 힘들다는 것을 알았고, 나는 어디서부터 시작해야할지 모른다.
모든 입력은 매우 유용 할 것입니다!https://developers.facebook.com/roadmap/offline-access-removal/
또는 당신은 모든 페이지 호출에 신선한 수명이 짧은 액세스 토큰을 이전 한 경우를 얻을 것이다 JS SDK를 포함 할 수 있습니다 :
이 단락은 "가장 쉬운 것 중 첫 번째 ..."는 혼란 스럽습니다. 여기에서 분명히 두 가지 다른 호출이 있습니다. 그래프 탐색기에서 각각에 대해 정확히 무엇을하고 있는지 명확히해야합니다. – phwd
내 게시물을 수정했습니다. 의견을 보내 주셔서 감사합니다. 희망이 충분히 명확하다. – Augus