我正在尝试在网站上建立一个“社交墙”,因此我使用Facebook API获取指定Facebook页面的一些帖子。我没有使用任何Facebook SDK,我只是使用URL进行cURL调用。
要检索帖子,我使用Javascript。使用Ajax命令,我调用一个PHP文件,使cURL调用Facebook。
当我在计算机本地工作时,一切正常,我得到了所有元素。
但是当我把我的代码放到网上时,我有这个错误
OAuthException (#4) Application request limit reached
我到处搜索,我试图将元素放在localStorage变量中。再次,在本地我正确地得到了所有元素。但是,当我在线测试时,即使是在第一次API调用时,我在控制台中再次出现此错误...
我只是向Facebook询问了20个帖子:
所以,如果我是对的,请拨打1个电话,20个电话号码,20个电话号码。这只是41个电话。
我该怎么做才能让它正常工作?
编辑:
这是我的CURL代码:
如果令牌错误,getToken会启动一次。
启动getFeed一次以获取Feed。
getPost和getPicture每次启动20次。
function fetchUrl($url){
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_TIMEOUT, 20);
// You may need to add the line below
// curl_setopt($ch,CURLOPT_SSL_VERIFYPEER,false);
$feedData = curl_exec($ch);
curl_close($ch);
return $feedData;
}
// Génère le token lié à l'appli fb
function facebook_getToken(){
global $FB_token, $FB_app_id, $FB_app_secret;
$FB_token = fetchUrl("https://graph.facebook.com/oauth/access_token?client_id=" . $FB_app_id . "&client_secret=" . $FB_app_secret . "&grant_type=client_credentials");
$FB_token = substr($FB_token, 13);
}
// Récupère les derniers posts de la page fb
function facebook_getFeed($pageID){
global $FB_token;
$json_object = fetchUrl("https://graph.facebook.com/" . $pageID . "/posts?limit=20&access_token=" . $FB_token);
$json_decoded = json_decode($json_object);
if(array_key_exists("error", $json_decoded)){
if($json_decoded->{'error'}->{'message'} == "Invalid OAuth access token signature."){
$_POST["a_t"] = null;
return null;
}
}
else{
$json_object = substr($json_object, 0, -1);
$json_object = $json_object . ", \"access_token\": \"" . $FB_token . "\"}";
return $json_object;
}
}
// Récupère les informations du post fb souhaité
function facebook_getPost($postID){
global $FB_token;
$thePost = fetchUrl("https://graph.facebook.com/" . $postID . "?access_token=" . $FB_token);
return $thePost;
}
// Récupère l'image du post fb en paramètre
function facebook_getPicture($postID){
global $FB_token;
$thePicture = fetchUrl("https://graph.facebook.com/" . $postID . "?fields=full_picture&access_token=" . $FB_token);
return $thePicture;
}
答案 0 :(得分:1)
我不清楚你在做什么。您可以通过
检索所有帖子的详细信息/{page_id}/posts?limit=20&fields=id,message,full_picture
其中{page_id}
是现有页面的数字ID。您可以跳过20个帖子请求和20个完整图片请求。
看看