2012-01-19 3 views
3

다른 페이스 북 사용자로 내 앱을 사용할 때 페이스 북 페이지 벽에 게시하는 방법을 알아 내려고 노력하고 있습니다. 페이지 관리자).페이스 북 페이지에 게시하는 방법 (페이지 액세스 토큰 + 사용자 액세스 토큰을 얻는 방법)

내가 테스트하는 동안 오류 메시지의 범위를 얻을 : 예외 : (200) : 사용자는이 작업

페이지 관리자가 응용 프로그램을 방문하여 다음과 같은 권한을 수락했습니다 수행하는 응용 프로그램을 승인하지 않은 : publish_stream를, 여기

코드가 offline_access manage_pages, 내가 사용할 계획 :

// Insert Page Administrators ID here 
// This user is not the same user that is currently logged in and using the app 
// This user is the page administrator who has authorised: 
// - manage_pages 
// - offline_access 
// - publish_stream 

$user_id = '123456789'; 

// Insert Page ID here 
$page_id = '123456789'; 

$accounts = $facebook->api('/'.$user_id.'/accounts'); 

foreach($accounts['data'] as $account) 
{ 
    if($account['id'] == $page_id) 
    { 
    $page_access_token = $account['access_token']; 
    echo "<p>Page Access Token: $page_access_token</p>"; 
    } 
} 

// publish to the wall on your page 
try 
{ 
    $result = $facebook->api(array("uid" => $page_id, 
            "method" => "stream.publish", 
            "access_token" => $page_access_token, 
            "message" => $message,)); 
} 
catch (FacebookApiException $e) 
{ 
    error_log('FB Error: Could not post on Page Wall. Page ID: ' . $page_id); 
    error_log('FB Error Message: ' . $e); 
} 

참고 : 난 그냥 즉석에서 그것을 접합,하지만 그리 m로, 위의 코드에서 PHP 오류가있을 수 있습니다 uch 수정이 필요한 PHP 오류,하지만 더 많은 내 논리적 으로이 과정에 대해 갈 의미입니다 이해.

문제 : 페이지 관리자에 대한 활성 사용자 액세스 토큰이 없으면 $ user_id/accounts 정보에 액세스 할 수 없습니다.

내가 달성하기 위해 노력하고있어 최종 결과

은 다음과 같습니다 1) 정상 FB 사용자가 응용 프로그램에 가고없는 형태 2) 응용 게시물 FB 페이지 벽에 메시지를 제출 FB 사용자가 소유하지만 이전에 페이지 관리자가 manage_pages, publish_stream 및 offline_access와 같은 권한으로 승인했습니다.

Q1. 페이지 관리자가 적절한 권한을 수락했기 때문에 실제 페이지 관리자 사용자가 웹 사이트에 로그인하지 않고 활성 사용자 액세스 토큰을 생성 할 수없는 이유는 무엇입니까?

2. 다른 사용자 (내가/me/accounts를 사용하지 않는 이유)로 Facebook에 로그인 할 때 Page Administrator user_id에 대한/$ user_id/accounts를 가져올 수있는 방법이 있습니까?

3. 페이지 벽에 게시 할 페이지 액세스 토큰이 필요하다는 것을 이해했는지 확인하십시오 (또는 페이지 관리자에게 사용자 access_token이 필요합니까 - Q1 참조)?

4. 누구나 access_token의 각 유형이 실제로 액세스 할 수있는 것에 대한 유용한 자료가 있습니까?

더 자세한 정보가 필요하면 알려 주시기 바랍니다. 지난 며칠간이 작업을했는데 막혔습니다.

감사합니다.

답변

3
  1. 당신은 offline_access와 함께 manage_pages의 페이지 관리자에게 요청할 수 있습니다. 나는 프로덕션 응용 프로그램에서 예약 된 게시물을 페이지의 벽에 게시 할 수 있도록이 작업을 수행합니다.

  2. 아니요. 불가능합니다. 그것이 권한을 묻는 것이 전부입니다. 그리고 왜 모두가 다른 사람들의 페이지를 관리하지 못합니다. 액세스 권한을 부여하지 않고 다른 사람의 페이지를 관리 할 수 ​​있다면 이미지를 만들 수 있습니까?

  3. 페이지로 페이지에 게시하려면 페이지 액세스 토큰이 필요합니다. 사용자로서 페이지의 벽에 게시하려면 사용자 액세스 토큰이 필요합니다.

  4. 예를 참조하시기 바랍니다 : https://developers.facebook.com/docs/reference/api/permissions

당신이이 중 하나에 대한 추가 문의 사항이있을 경우 https://developers.facebook.com/docs/authentication/이 새로운 질문을 시작하십시오. stackoverflow 사용자가 4 가지 질문에 맞고 그 각각에 대한 후속 질문을하는 것이 타당하지 않다. 내가 장고에서 수행 한

+0

1. 줄 것이다 나는 이미이 권한을 요청하고, 페이지 관리자가이가 있는지 확인 할 수 있습니다 내 응용 프로그램에 대해 사용 권한이 있습니다. 2. 사용 권한이 필요하다고 생각하지만 내 앱이 Facebook Facebook 페이지에 설치되며 사용자가 새 항목을 만들 때 클라이언트 Facebook 페이지 벽에 게시하려고합니다. 따라서 메시지를 게시하려고 시도 할 때 앱을 사용하는 사용자는 페이지 관리자가 아닌 일상적인 사용자입니다. – James

+0

3. 페이지 액세스 토큰이 사용되는 목적을 명확히 해 주셔서 감사합니다. 마치 현재 사용자의 액세스 토큰을 사용하여 페이지 관리자 (페이지 관리자가 소유 - 적절한 권한 - manage_pages/offline_access를 승인 함)에 게시 할 수 있지만 인증 오류가 발생하는 것처럼 들리지만 아래로 내 게시물을 업데이 트) 4. 내가 밖으로이 페이지를 읽고 필요 한 대답을 받고 함께 행운이 될 것하지 않습니다. 오류 로그 : 알려지지 않은 예외 : 240 : 유효한 사용자가 지정되어야합니다. – James

+0

이 중 하나에 대해 궁금한 사항이 있으면 새 질문을 시작하십시오. stackoverflow 사용자가 4 가지 질문에 맞고 그 각각에 대한 후속 질문을하는 것이 타당하지 않다. – DMCS

2

:

단계 Page_access_token를 얻을 :

facebook_page_id=360729583957969 
graph = GraphAPI(request.facebook.user.oauth_token.token)      
page_access_token=graph.get(facebook_page_id+'?fields=access_token') 

이 방법 당신은 페이지 액세스 토큰을 얻을 수 있습니다.

당신은 FB GraphAPIexplorer에이 일을 확인할 수 있습니다

: 예를 들어

http://developers.facebook.com/tools/explorer 
GET URL: fb_page_id?fields=access_token 

: 360729583957969?fields=access_token 당신에게 page_access_token

관련 문제