2013-12-12 13 views
3

사용자가 특정 페이지를 좋아한다면 얻는 PHP 앱을 개발했습니다.일부 사용자와 같이 페이지를 가져올 수 없습니다.

나는 사용자에게이 방법으로 로그인 :

$this->_facebook = new Facebook(array(
     'appId' => "123", 
     'secret' => "346", 
    )); 
$this->_facebookUser = $this->_facebook->getUser(); 
$this->_facebook->api('/me'); 

다음

$checkIfUserLikePage = $this->_facebook->api(array(
     "method" => "fql.query", 
     "query" => "select uid from page_fan where uid=me() and page_id=" . $pageid, 
    )); 

이 대부분 작동하지만 일부 사용자하지 않습니다, 그것은 하늘의 배열을 돌려줍니다. 온라인에서 확인한 결과 내 앱에 * user_likes * 권한이 누락되었을 수 있습니다. 그리고 사실 나는이 허락을받지 못했습니다. 다시 한 번 나는 권한을 추가하고, 앱을 제거하고 다시 시도해야한다는 것을 알았다.

그래서 I :

  1. 는 developer.facebook.com> 응용 프로그램>MyApp를> 응용 프로그램의 세부 사항에 기록>
  2. 사용자와 친구 권한 텍스트에 "user_likes"를 추가 구성 앱 센터 권한 지역
  3. MyApp를 제거하기 위해 테스트 사용자 요청 저장
  4. 은 테스트 사용자에게 앱에 액세스하도록 요청했습니다.

결과적으로 사용자에게 여전히 빈 배열이 표시됩니다. 그 밖의 무엇이 잘못 되었나요? 덕분에

답변

5

범위에 전달한 권한으로 앱 센터의 권한을 실수로 저 지르지 마십시오. 사용자에게 권한을 묻는 메시지가 나타나면 "user_likes"를 범위에 추가 했습니까? JS-SDK와

당신은 예를 들어 그런 식으로 작업을 수행합니다

FB.login(function(response) { 
    // Do some fancy stuff 
}, {scope: 'user_likes'}); 

또한 유효한 사용자 액세스 토큰을 가지고 있는지 확인하십시오. PHP-SDK는 현재 액세스 토큰을 반환하는 "getAccessToken()"메서드를 제공합니다.

또한 현재 사용자의 userID를 반환하는 getUser() 결과를 인쇄 해보십시오. 0이되면 사용자가 페이스 북 앱과 연결되어 있지 않아 FQL 쿼리에서 me()를 사용할 수 없다는 것을 확신 할 수 있습니다.

/{user-id}/permissions으로 그래프 API를 쿼리하십시오. 사용자가 부여한 모든 권한을 포함하는 json 객체가 반환됩니다. 물론 그렇게하기 위해서는 앱과 연결된 유효한 사용자가 필요합니다.

도움이되는 조언을 제공해주기를 바랍니다. 아무 것도 더 많은 코드를 게시하는 데 도움이되지 않는다면.

해피 코딩! PHP에서

+0

제가 사용했을 '$이 -> _ facebook-> getLoginUrl (배열 ('범위 '=>)의 이메일은 user_likes'), 그 다음 ' 및 '$이 -> _ facebook-> API를 ("/me/likes/PAGE_ID "); ' – Maxxer

+0

이제 작동합니까? – thpl

+0

예! 다시 한 번 감사드립니다! – Maxxer

관련 문제