达到Facebook应用程序请求限制(#4)

时间:2015-12-16 11:41:19

标签: javascript php ajax facebook facebook-graph-api

我正在尝试在网站上建立一个“社交墙”,因此我使用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;
}

1 个答案:

答案 0 :(得分:1)

我不清楚你在做什么。您可以通过

检索所有帖子的详细信息
/{page_id}/posts?limit=20&fields=id,message,full_picture

其中{page_id}是现有页面的数字ID。您可以跳过20个帖子请求和20个完整图片请求。

看看