2013-08-05 3 views
0

안녕하세요 사용자가 내 앱을 좋아하는지 확인하려면 다음을 사용하고 있습니다.사용자가 페이지를 좋아하는지 알아보십시오

문제는 서명 된 요청이 페이지 객체없이 반환된다는 것입니다. 전체 요청을 반환하도록 권한을 설정하려면 어떻게해야합니까? 하지 apps.facebook.com (캔버스)이나 모든 도메인에, (응용 프로그램 구성 및 팬 페이지에 탭으로 추가되는 경우)

 require_once('facebook.php'); 

     $facebook = new Facebook(array(
      'appId'=> FB_APP_ID, // replace with your value 
      'secret'=> FB_APP_SECRET // replace with your value 
     )); 
     $signedRequest = $facebook->getSignedRequest(); 
     var_dump($signedRequest); 
     // Inspect the signed request 
     if($signedRequest['page']['liked'] == 1){ 

      echo 'like'; 

     } else { 

      echo 'no like'; 

     } 
    } 

답변

1

페이지 만 facebok 페이지에 전달됩니다. 내가 사용자 당 응용 프로그램에 사용하고 다른 한편으로

는 사용자가 팬 페이지 또는 좋아 있는지 확인하는 documentation에 따르면

// scope for user 
// $facebook <- assuming this is facebook sdk object 
// $params = array(
// 'scope' => 'user_likes' <- to get likes we have to require this 
//); 

function fanGate() { 
    $likes = null; 
    try { 
     $likes = $facebook->api('/me/likes'); 
    } catch (Exception $e) {} 
    $likeUs = false; 
    if ($likes) 
     foreach ($likes['data'] as $like) { 
      if ($like['id'] == 'some id of page') 
       $likeUs = true; 
     } 
    return $likeUs; 
} 

편집

를 (이것은 최근에이 오래된 될 수 있도록 변경) user_likes 만 필요로하는 다른 GraphAPI 개체 및 다음

$arrResult = $facebook->api("/me/likes/${SOMEOBJECT_ID}") 
// $arrResult = $facebook->api("/${USER_ID}/likes/${SOMEOBJECT_ID}"); 
if (empty($arrResult['data'])) 
    echo 'dont like'; 
else 
    echo 'like'; 
거의 /me/likes 반환 모든 좋아하는 호출

하지만 것이다 change - 2013-10-02

/USER_ID/기본 업데이트는 현재 API가 기본적으로 모든 좋아하는 반환 좋아한다. 이전 후 그래프 API를 통해 사용자의 좋아요를 가져 오는 것은 한 번에 25 개의 결과를 반환합니다. 결과에 페이지 매김을 추가하여 사용자가 좋아하는 모든 페이지로 페이지를 이동할 수 있습니다.

+0

이 항목을 어떻게 실행합니까? 페이스 북 정의 대상은 어디입니까? –

+0

코드가 수정되었지만 솔루션이 아니라 컨셉 스 니펫입니다. – kwarunek

관련 문제