我试图通过图形API获取FACEBOOK COVER,但我不能。

时间:2016-07-18 20:26:49

标签: facebook api graph

try {   
    $requestCover = $fb->get('me?fields=cover'); //getting user Cover
     $requestProfileCover=$fb->get('/me');  
//   $cover = $requestCover->getGraphUser();        
//  $profile = $requestProfileCover->getGraphUser();    
     } 
    catch(Facebook\Exceptions\FacebookResponseException $e) {
    echo ' error: ' . $e->getMessage();         
    exit;   
     }
    catch(Facebook\Exceptions\FacebookSDKException $e) {            
     echo 'Facebook SDK error: ' . $e->getMessage();        
    exit;   
     }
    print_r($requestCover);     // showing cover details on the screen  
    echo "<img src='".$requestCover['source']."'/>";

错误:

  

致命错误:未捕获错误:无法使用类型对象   Facebook \ FacebookResponse作为阵列   C:\ xampp \ htdocs \ fb_app \ twibook \ index.php:165堆栈跟踪:#0 {main}   在第165行的C:\ xampp \ htdocs \ fb_app \ twibook \ index.php中抛出

1 个答案:

答案 0 :(得分:0)

CBroe指出您正确使用的功能,以获取您的数据。我正在使用这个答案,试图解释你应该尝试什么不适合评论。 (还没有使用过这个api,所以我不确定你的问题的实际解决方案,但处理你的问题的描述应该是准确的)

通过调用$requestCover = $fb->get('me?fields=cover');,您将$requestCover设置为类FacebookResponse的对象。

因为它是一个对象,所以无法像处理数组元素那样访问它的属性。如果它们是公共的,您必须使用-> - 运算符来访问它们,或者您必须使用特定的方法。

在这种情况下,对于类FacebookResponse,您必须使用方法。 The one CBroe pointed you to,将返回一个数组,其中包含响应主体的不同数据,因此首先在变量上写入对此方法的调用的返回值,然后您(应该)拥有一个包含您的值的数组。 / p>

try {   
    $requestCover = $fb->get('me?fields=cover'); //getting user Cover
     $requestProfileCover=$fb->get('/me');   
} 
catch(Facebook\Exceptions\FacebookResponseException $e) {
    echo ' error: ' . $e->getMessage();         
    exit;   
}
catch(Facebook\Exceptions\FacebookSDKException $e) {            
    echo 'Facebook SDK error: ' . $e->getMessage();        
    exit;   
}
$responseBody = $requestCover->getDecodedBody();
echo "<img src='" . $responseBody ['source'] . "'/>";
print_r($requestCover); // should print an array