2013-07-30 7 views
0

문제점 : Instagram API로 작업 중이며 OAuth로 인증 중입니다. 내 문제는 내 세션을 유지하는 방법을 알아낼 수 없다는 것입니다. 결국 서비스가 만료되고 더 이상 서비스에서 사진을 가져올 수 없습니다.OAuth 세션을 활성 상태로 유지하는 방법

배경 : 클라이언트 ID 및 클라이언트 비밀을 허용하는 사용자 지정 관리자 패널에서 설정 페이지를 만들었습니다. 이 값을 내 DB에 저장하면 내 응용 프로그램이이 값을 사용하여 Api에 연결합니다. "Save and Connect"버튼을 클릭하여 DB를 업데이트 한 다음 Instagram API에서 인증 토큰을 요청합니다. 이 모든 것이 훌륭하게 작동합니다.

필요 : 세션을 무기한으로 또는 가능한 길게 유지해야합니다. api에서 결과 집합을 캐싱 중이므로 너무 많은 요청을하지 않고 액세스 토큰이 PHP 세션에 저장됩니다. 그러나 새 사용자가 방문하고 세션에이 토큰이 없으면 캐시가 만료되고 세션이 만료되면 사진을 더 이상 사용할 수 없게 됩니 까?

가능한 해결책을 기다리십시오. 더 많은 정보가 필요하거나 제 질문이 불분명 한 경우 알려주십시오.

감사합니다,

+0

은 그냥 인스 타 그램 클라이언트를위한 새로운 토큰을 요청할 수 없습니다 :

$insta = new Instagram(array( 'client_id' => $client_id, 'client_secret' => $secret, 'redirect_uri' => $redirect_uri )); if(!$insta->isAuthenticated()){ /* Not logged in */ $login_url = $this->insta->getLoginUrl(array( 'scope' => $scope, )); header("Location: ".$login_url."); } /* Save the token */ if($this->insta->getToken()) { $token_to_save = $this->insta->getToken(); } 

그런 다음 저장 토큰을 사용할 수 있습니까? – Manuras

+0

할 수는 있지만 관리자 패널에있는 리디렉션 URI로 사용자를 되돌려 보낼 수 있다고 생각합니다. – zcreative

답변

0

당신은 DB 나 서버에서 가장 최근의 액세스 토큰을 저장하고 저장된 토큰 요청을해야한다. Instagram 액세스 토큰은 오래되었습니다 (현재는 최소한). 부담없이 포장지를 사용하고 있습니다 here 있습니다. 그런 식으로 세션은 처음 토큰을받는 경우를 제외하고는 아무런 문제가되지 않습니다. 토큰이 만료되면

$ig_saved_token = getTokenFromDBSomewhere();  
$insta->setToken($ig_saved_token); // Set the saved token 
$r = $insta->api('users/self/media/recent'); // Request works with saved token! 
+0

이 방법을 사용해 주셔서 감사합니다! – zcreative

관련 문제