0

我正在尝试通过以下方式获取 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
  }
 }
}

怎么了?

4

1 回答 1

0

普通用户配置文件的 API 不会返回该circledByCount值,只会返回给 G+ Pages。甚至在开发人员页面上也没有Try it部分

根据此发行说明,我的重点是:

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'] );
}
于 2013-09-18T14:26:24.410 回答