在Google Plus上获取圈子中的人数

时间:2013-09-17 23:37:54

标签: php wordpress json

我正试图通过以下方式获取Google Plus圈子中的人数:

$gplus_data = wp_remote_get('https://www.googleapis.com/plus/v1/people/'.$googleplus_user.'?key='.$api_key);
$gplus_data = json_decode($gplus_data['body'],true);
$gplus_count = $gplus_data['circledByCount'];

但是我在最后一行得到了一个错误。

json对象如下:

{
 "kind": "plus#person",
 "etag": "\"pSkIL41GT2wmAdFX5kPW-Rf7v4A/dRTsk1U7uBI-ekf4-a2fEZl8eGs\"",
 "urls": [
  {
   "value": "",
   "label": ""
  }
 ],
 "objectType": "page",
 "id": "",
 "displayName": "",
 "tagline": "",
 "aboutMe": "",
 "url": "",
 "image": {
  "url": ""
 },
 "isPlusUser": true,
 "plusOneCount": 22556,
 "circledByCount": 1398,
 "verified": false,
 "cover": {
  "layout": "banner",
  "coverPhoto": {
   "url": "",
   "height": 528,
   "width": 940
  },
  "coverInfo": {
   "topImageOffset": -126,
   "leftImageOffset": 0
  }
 }
}

怎么了?

1 个答案:

答案 0 :(得分:0)

API不会为普通用户个人资料返回circledByCount值,仅返回G +页面。甚至不在developers page Try it section

根据这个release note,我强调:

  

2012年11月发布

     

向人力资源

添加了以下属性      
      
  • [...]
  •   
  • plusOneCount(仅适用于Google+信息页)
  •   
  • circledByCount(仅适用于Google+信息页
  •   

你的最后一行应该是:

$gplus_count = isset( $gplus_data['circledByCount'] ) ? $gplus_data['circledByCount'] : '';

我测试了这段代码:

$g_user = USER_ID;
$api_key = API_KEY;

$url = 'https://www.googleapis.com/plus/v1/people/'.$g_user.'?key='.$api_key;
$response = wp_remote_get( $url );

if ( ! is_wp_error( $response ) )
{

    $body = json_decode( wp_remote_retrieve_body( $response ), true );
    var_dump( $body );
}
elseif( isset($response['body']['error'] ) ) 
{
    var_dump( $response['body']['error'] );
}