2012-08-06 1 views
2

PHP를 통해 웹 사이트에서 지정된 페이스 북 페이지로 이야기를 게시 할 필요가 있습니다. 오프라인 액세스 권한은 사용되지 않으므로 기본적으로 페이지 액세스 토큰 (페이지로 게시)을 가져올 수 있도록 사용자 액세스 토큰을 가져와야하지만 이러한 토큰은 만료되고 팝업 확장을 위해 사용자에게 직접 권한을 요청해야합니다 내가 틀렸다면 나).페이스 북 페이지 액세스 토큰을 가져 와서 페이스 북 페이지 벽에 자동으로 게시하십시오.

그래서 백그라운드에서 로그인하여 사용자 액세스 토큰이 만료되면 사용자를 로그인하고 새 액세스 토큰을 얻을 수있는 방법이 있습니까? 아니면 결코 끝나지 않은 사용자 액세스 토큰을 얻고이를 통해 끝이 아닌 페이지 액세스 토큰을 얻는 방법이 있을까요?

특히 내가 게시하고 싶은 웹 사이트와 페이스 북 페이지를 소유하고있는 경우에 그렇게하는 것이 어렵다고 이해하지 마십시오.

답변

5

난 그냥 내가 대답 할 수 있도록이 작업을 수행하고 질문에 대한 유래를 검색하는 방법을 발견 :

첫째, 아니에요 당신이 확장 액세스 토큰을 요청해야하는 사용자를, 당신을합니다. 자신의 사용자의 액세스 토큰을 확장해야합니다. 사용자의 액세스 토큰은 'user token'이라는 이름으로 https://developers.facebook.com/tools/accesstoken/에서 찾을 수 있습니다.

GET /oauth/access_token? 
    grant_type=fb_exchange_token&   
    client_id={app-id}& 
    client_secret={app-secret}& 
    fb_exchange_token={short-lived-token} 

{app-id}{app-secret}가 developers.facebook.com에서 당신이 응용 프로그램의 대시 보드에서 정보이며 {short-lived-token}은 '사용자입니다 :

다음 단계는이 요청하여이 토큰의 수명을 연장하는 것입니다 토큰 '을 발견했습니다.

php SDK를 통해이 호출을 할 필요가 없습니다. graph.facebook.com/oauth/access_token?grant_type=fb_exchange_token&client_id={app-id}&client_secret={app-secret}&fb_exchange_token={short-lived-token} 페이지를 요청하는 것처럼 브라우저를 사용할 수 있습니다 (참고 : access_token={access-token}&expires={seconds}의 형식으로 값을 반환하므로 전체를 복사하지 마십시오).

이제 확장 사용자 토큰을 사용하여 페이지 액세스 토큰을 얻으면 영구적입니다. 새로운 토큰을 사용하여이 API 호출하기 (참고 : 호출하기 전에이 호출에 'manage_pages', 나중에 페이지에 게시하기위한 'publish_actions') 권한을 부여해야합니다. 가장 쉬운 방법은 당신이 제공하는 데 필요한 권한이 '확장 된 권한'탭 아래에 https://developers.facebook.com/tools/explorer/에서 버튼 "액세스 토큰을 얻을.") :

GET /me/accounts 

당신은 액세스 토큰과 함께 페이지의 목록과 정보의 일부를 얻을 것이다 그들 각각을 위해.

이러한 액세스 토큰은 만료되지 않습니다. https://developers.facebook.com/tools/debug/

+0

이것은 내 하루를 저장했습니다. 고마워요!너의 현상금이 도중에있다. –

0

페이지에 대한 커넥터 앱을 만든 다음 앱에 영구 액세스 토큰을 가져와야합니다. 이 프로세스의 세부 정보는 Facebook 설명서의 Authenticating as an App 페이지에서 확인할 수 있습니다.

+0

앱 액세스 토큰을 사용하여 무엇인가를 게시 할 수 있습니까? 이런 종류의 토큰은 정보만을 검색 할 수있는 권한을 부여하는 것으로 보입니다. 디버거에서 앱 액세스 토큰을 테스트하면 앱 식별 만 가능합니다. 적절한 사용 권한을 가진 사용자 access_token을 테스트하면 사용 권한도 표시됩니다. – banesto

+0

이 앱이 작동하지 않는다고 생각합니다. access_token은 계정 연결에 적절한 권한을 부여하지 않습니다. 페이지에 대한 access_token을 검색하려면 사용자 access_token이 필요합니다. – TommyBs

+0

@TommyBs 리디렉션없이 어떻게 수행 할 수 있습니까? 나는 user, pass, appId, appSecret을 가지고 있습니다 - 새로운 API access_token을 얻기 위해 API 호출을 사용할 수 있습니까? – banesto