[英]Sudden Facebook API Rate Limit Error (Trying to Get Share Count)
我在這里查看了大量相關帖子,但似乎找不到答案。 幾個月來,我一直在使用相同的代碼來獲取我網站上頁面的 Facebook 共享計數。 它[相對]完美地工作,但突然它開始什么也沒返回。 在瀏覽器中嘗試源代碼 URL 后,我意識到它拋出了 API 限制錯誤。 請幫忙...
代碼:
[[[FUNCTION]]]
return jQuery.ajax({
url: 'https://graph.facebook.com/?fields=engagement&callback=FB.Share&id=' + permalinkWPSC + '&access_token=[[[ACCESS TOKEN]]]',
type: 'GET',
dataType: 'JSONP',
success: function(data) {
count = 0;
if (data.engagement) {
var count = Number(data.engagement.reaction_count + data.engagement.share_count + data.engagement.comment_count);
var share_count_http = 0;
if ($('[data-share-count]').length > 0) {
share_count_http = parseInt($('[data-share-count]').data('share-count'));
}
count = count + share_count_http;
}
$( ".share-num" ).html( count );
$( "span.fbCount" ).html( count );
}
});
[[[END FUNCTION]]]
So this is essentially using this URL string (with "URL" being actual URL and "ACCESSTOKEN" being the access token granted by the Facebook API: https://graph.facebook.com/?fields=engagement&callback=FB.Share&id=URL&access_token =訪問權限
錯誤:
/**/ FB.Share({
"error": {
"message": "(#613) Calls to graph_url_engagement_count have exceeded the rate of 10 calls per 3600 seconds.",
"type": "OAuthException",
"code": 613,
"fbtrace_id": "Ad9vIHStlvzuGptF9LZmT-L"
}
});
請注意,網站或流量沒有其他任何變化。 很奇怪...
答案在錯誤消息中:
#613) 對 graph_url_engagement_count 的調用已超過每 3600 秒 10 次調用的速率。
他們最近改變了這一點。
api 文檔( https://developers.facebook.com/docs/graph-api/reference/v10.0/url )說:
每個應用程序每小時每個 URL 限制為 10 個 GET 請求。
它還說:
“請注意,參與度值故意不精確,但您可以確信它們准確地反映了 URL 的用戶參與度。”
在實踐中,這似乎意味着如果喜歡、分享或評論低於某個數量,則顯示為零。
您正在總結所有參與計數,因此您可能想嘗試訪問“og_object {engagement}”字段而不是“參與”,它似乎不受速率限制的影響。 編輯:這是您編輯的代碼以使用它。
[[[FUNCTION]]]
return jQuery.ajax({
url: 'https://graph.facebook.com/?fields=og_object{engagement}&callback=FB.Share&id=' + permalinkWPSC + '&access_token=[[[ACCESS TOKEN]]]',
type: 'GET',
dataType: 'JSONP',
success: function(data) {
count = 0;
if (data.og_object) {
var count = Number(data.og_object.engagement.count);
var share_count_http = 0;
if ($('[data-share-count]').length > 0) {
share_count_http = parseInt($('[data-share-count]').data('share-count'));
}
count = count + share_count_http;
}
$( ".share-num" ).html( count );
$( "span.fbCount" ).html( count );
});
[[[END FUNCTION]]]
除了速率限制問題,更大的問題是他們在 2021 年 5 月 25 日推出的 Graph API 更改。版本 10 及更高版本現在有這個新規定( 來源):
由於隱私問題,GET /?id={url}/engagement 請求返回的計數可能與原始計數不匹配。
然而,它並沒有就此結束。 Facebook 團隊在一些錯誤報告中回應說,參與次數少於 100 的帖子將不再顯示任何數據。 雖然這很好,但並不准確,因為我有一些帖子有超過 100 次參與,但仍然沒有返回任何內容。
一些參與度超過 100 次的帖子仍然會返回數據。 更大的問題是,我看到的不准確。 Facebook 似乎並沒有花時間在他們的最后進行正確的測試。
我已經評論了一些 Facebook 錯誤報告以及其他錯誤報告,因為我們希望從 Facebook 獲得更好的答案。
我還在這里寫了一個更長的摘要: https://novashare.io/docs/facebook-share-counts-graph-api-v10/
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.