2016-08-02 2 views
1

안녕하세요 저는 다소 혼란스럽고 Facebook API를 어떻게 처리해야할지 확신하지 못했습니다.Facebook PHP SDK 사용자 액세스 토큰 받기

그래서 그래프 API 업데이트를 가져 오는 웹 훅을 설정합니다. 사용자가 이름/이메일 등을 변경하면 완벽하게 작동합니다. json을 얻고 있으며 어떤 필드가 변경되었는지 확인할 수 있습니다.

하지만 지금 어디로 가야할까요? 나는 userID와 appID로 accessToken을 얻으려고했지만 나는 그것을 얻을 수 없었다. 나는 AppAccessToken을 얻을 수 있었지만 UserAccessToken이 필요하도록 (ID와 이름만으로) 사용자 데이터를 쿼리 할 수는 없습니다. 나는 실제를 수신 할 방법

$fb->get("/{userID}?fields=name,email") 

에서 데이터를 변경 여러분의 도움에 감사드립니다, 웹에 너무 많은 일이, 내가 정말 필요한 것을 알아낼 수 없습니다.

모든 최고의

, 누가 복음

+0

어떤 SDK 버전을 사용하십니까? –

+0

V4_5.0.0 :) 최신 릴리스 – SomehowLuke

답변

-1
$accessTokenEntity = new Facebook\Authentication\AccessToken(); 
$accessToken = $accessTokenEntity->getValue(); 

try { 
    // Returns a `Facebook\FacebookResponse` object 
    $response = $fb->get('/me?fields=id,name', $accessToken); 
} catch(Facebook\Exceptions\FacebookResponseException $e) { 
    echo 'Graph returned an error: ' . $e->getMessage(); 
    exit; 
} catch(Facebook\Exceptions\FacebookSDKException $e) { 
    echo 'Facebook SDK returned an error: ' . $e->getMessage(); 
    exit; 
} 

실제로 테스트 할 기회를하지 못했지만, this에 따라 작동합니다.

+0

내 이해를 위해 로그인 프로세스에서 반환되는 개체입니다. 그래서 나는 실제 로그인이나 내게 그의 신원에 의해 사용자 accesstoken을주는 것을 놓치고있다. 스크립트가 webhook에 의해 호출되고 canvas를 쓰지 않기 때문에 webhook은 실제로 redirecturlhelper와 canvashelper를 사용할 수 없으므로 사용자는 실제로 액세스를 트리거하지 않습니다. 나는 offline_access를 사용하고 내 데이터베이스에 평생 accesstoken을 저장하는 것을 생각했지만 가능하다면 이드가 호출을 통해 액세스하려고합니다. – SomehowLuke

+0

이렇게하면 작동하지 않습니다. 여기서 문제는 서버가 로그인을 트리거하고 사용자의 ID 만 있지만 세션 및 다른 세션은 없다는 것입니다. 그러면 서버가 현재 "나"누구이며 가져올 액세스 권한은 무엇입니까? 나는 그것을 찾았고 offline_acces는 더 이상 사용할 수 없으므로 ID와 appid뿐 아니라 appsecurity를 ​​가진 사용자의 데이터에 액세스 할 수있는 방법이 있어야합니다. 어떻게 그 문제를 해결할 수 있습니까? – SomehowLuke

+1

사용자 토큰을 최대 60 일까지 연장 할 수 있습니다. 저장된 토큰이 그보다 오래되어 유효하지 않은 경우, 새 토큰을 생성하기 위해 로그인 흐름을 통해 사용자를 다시 보내야합니다. 다른 방법은 없습니다. – CBroe