2011-12-13 2 views
1

을 제기하고 다음과 같은 예외게시 사진 내가 사용자 벽에 사진을 게시하는 함수를 썼다 예외

Fatal error: Uncaught OAuthException: A user access token is required to request this resource. thrown in C:\xampp\htdocs\upd8r\application\helpers\base_facebook.php on line 1039 

이 내 코드 - 내가 무엇을 놓치고있다을 제기?

function facebook_img_post($fb_id,$data){ 


     $this->load->helper('facebook'); 

     $this->load->model('mmaster'); 
     $globalSettings = $this->mmaster->getGlobalSettings('1'); 

     // Create our Application instance. 
     $this->facebook = new Facebook(array(
      'appId' => $globalSettings['facebook_id'], 
      'secret' => $globalSettings['facebook_secret'], 
      'cookie' => false 
     )); 

     $this->facebook->setFileUploadSupport(true); 


     $this->facebook->api("/".$fb_id."/photos",'post', array(
       'message'=> $data['message'], 
       'source' => $data['source'] 
      ) 
     ); 





     //new fb post 

    } 

업데이트

이 모든 권한을 나타내는 등록 사용자 I API에 스와핑

$data['loginUrl'] = $this->facebook->getLoginUrl(array('scope' => 'read_stream,publish_stream,status_update,offline_access')) 

업데이트 2

요청하고 시도 링크 인 curl을 사용하면 더 많은 제어가 가능하며 분명히 사용자 액세스 토큰이 필요합니다. 비록 내가 응용 프로그램 액세스 토큰을 검색하고 사용하고 있었지만 분명히 두 가지가 있습니다.

+0

비슷한 질문 : http://stackoverflow.com/questions/4662118/facebook-api-error-uncaught-oauthexception-error-validating-access-token][1] [1] : http://stackoverflow.com/questions/4662118/facebook-api-error-uncaught-oauthexception-error-validating-access-token – Robert

답변

1

loginURL을받을 때 사용자에게 publish_streammanage_page 권한을 부여하도록 허용해야합니다.

$loginUrl = $facebook->getLoginUrl(
    array(
     'scope' =>'user_status,user_photos,status_update,manage_pages,publish_stream,offline_access', 
     'redirect_uri' => $fbconfig['baseurl'] 
     ) 
); 

여기에 몇 가지 더 많은 정보는 다음과 같습니다 FB 권한 : 권한 요청을 포함하여 FB에 연결하기위한 http://developers.facebook.com/docs/reference/api/permissions/

자습서 : http://thinkdiff.net/facebook/php-sdk-3-0-graph-api-base-facebook-connect-tutorial/

+0

나는 이미 이것을했다. 사용자가 permission 및 offline_access도 부여했습니다. –

+0

offline_access뿐 아니라 publish_stream 권한을 요청 했습니까? – FluffyKitten

+0

publish_stream 권한을 요청해야하는 위치를 표시하기 위해 offline_access 권한을 추가하는 코드를 편집했습니다. – FluffyKitten

1

당신이 publish_stream 권한 액세스 토큰을 요청해야

이 링크를 확인하십시오 :

UPDATE

new Facebook에 대한 인스턴스를 생성 한 후 사용자 인증을 위해 FB로 리디렉션 할 수 있습니다

$loginUrl = $this->facebook->getLoginUrl(array('scope' => 'publish_stream, offline_access')); 
echo '<script>top.location.href="'.$loginUrl.'"</script>'; 

두 번째 업데이트

이 방법으로 모두 작업하고 있는데 문제가 계속 발생하면 이미지 데이터를 제대로 말리지 않고 전달하는 것일 수 있습니다. 이미지 경로를 @으로 앞에 추가해야 이미지가 다중 부분 데이터로 보내 져야 함을 CURL에 알릴 수 있습니다. 이것에

+0

동일한 복수 시간을 게시 해 주셔서 죄송합니다. 연결 문제가 있습니다. – haynar

+0

내가 권한 요청 방법을 포함 시켰습니다. 이미 해당 게시물에 –

+0

게시 게시물이 있습니다. 지난 번에 같은 문제가 발생할 수 있습니다. $ data [ 'source']에는 이미지 경로가 포함되어 있음을 이해합니다. '@'기호로 경로를 앞에 붙이십니까? – haynar

관련 문제