2015-12-16 108 views
-1

我試圖在網站上創建「社交牆」,因此我使用Facebook API爲指定的Facebook頁面獲取一些帖子。我沒有使用任何Facebook SDK,我只是使用URL進行cURL調用。已達到Facebook應用程序請求限制(#4)

要檢索帖子,我使用Javascript。使用Ajax命令,我調用一個PHP文件,它可以將cURL調用到Facebook。

當我在本地計算機上工作時,一切正常,我得到所有元素。

但是,當我把我的代碼在網上,我有這樣的錯誤

OAuthException (#4) Application request limit reached 

我到處找,我試圖把元素在localStorage的變量。再次,在本地,我正確地掌握了所有的元素。但是,當我在線測試,甚至在第一個API調用,我再次得到這個錯誤在我的控制檯...

我只是問的Facebook爲20個帖子:

所以,如果我是對的,1呼叫飼料,20個電話的帖子,20個電話的圖片。只有41個電話。

我該怎麼做才能使它正常工作?

編輯:

這裏是我的捲曲代碼:

爲gettoken啓動一次如果令牌是錯誤的。

getFeed已啓動一次以獲取訂閱源。

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

只是快速猜測:你確信代碼不循環請求不知何故?你可以在這裏添加你的CURL代碼嗎? – Shamppi

+0

@Shamppi我不這麼認爲,怎麼可能有一個工作正常的離線但不在線的代碼? 我編輯了我的問題(我添加了CURL代碼) –

回答

1

這對我而言並不是很清楚你在做什麼。您可以通過

/{page_id}/posts?limit=20&fields=id,message,full_picture 

獲取所有的信息的詳情,其中{page_id}是現有頁面的數字ID。您可以跳過20個帖子請求和20個全部圖片請求。

看一看

+0

哇,我做錯了,直到開始。謝謝,這很簡單... –

相關問題