我正在使用Facebook分析(https://developers.facebook.com/)来获取一个Facebook帖子(在wordpress网站上)的共享计数,并且在有人向该帖子提出一些请求之前(当我访问我网站上的帖子,我向facebook api发出请求以获取每个帖子的股份数)。在我对帖子发出一些请求后,例如:http://kosovotwopointzero.com/sistemi-i-shendetesise-nen-mikroskop/,由于它不起作用,我目前无法显示股份数量,因此将facebook api称为:
这是我使用的功能
function get_url_shares_count($url = '') {
$fbUrl = 'https://graph.facebook.com//v2.1/?id='.$url.'&access_token=??|??';
$request = wp_remote_get($fbUrl);
$data = json_decode($request['body']);
// return $data[0]->share_count;
return is_null($data->share) ? 0 : $data->share->share_count;
}
但是几乎所有时候API都会向我返回:
{
"error": {
"message": "(#4) Application request limit reached",
"type": "OAuthException",
"is_transient": true,
"code": 4,
"fbtrace_id": "GDs+M7u/zoO"
}
}
请您帮我找到解决方案吗?这是Facebook的政策限制或我们正在使用的功能吗?
如果您通过有效的任何插件或如何与Facebook联系的方式来帮助我们找到解决方案(如果有必要)。
答案 0 :(得分:0)
我建议要么获取数据,要么
如何?
类似的事情应该起作用:
function YourFunctionName()
{
$HourAgo = date('m/d/Y h:i:s a', time() -(3600));
$newload = false;
if (isset($_SESSION['LastApiCall'])) {
if (strtotime($HourAgo) >= strtotime($_SESSION['LastApiCall'])) {
$newload = true;
}
}else{
$newload = true;
}
if ($newload) {
$content = 'your_url'
$_SESSION['apiData'] = json_decode($content);
// Handle api data
$_SESSION['LastApiCall'] = date('m/d/Y h:i:s a', time());
}
}
如果用户正在注销,则每次重新加载时都要检查YourFunctionName(),销毁每个会话
注意:没有对此进行测试