1

J'écris un script pour Google Sheets qui utilise l'API Graph de Facebook pour récupérer mes données. Tout fonctionnait plus tôt aujourd'hui, mais je reçois soudainement une erreur:UrlFetch a échoué parce que trop de trafic est envoyé à l'URL spécifiée

UrlFetch failed because too much traffic is being sent to the specified URL.

Je n'ai pas frappé des quotas sur l'utilisation UrlFetch parce que je peux encore aller chercher d'autres urls qui ne sont pas graph.facebook.com - donc la question semble être spécifiquement avec Facebook.

Script Code

var myClientID = ''; 
var myClientSecret = ''; 
var myAccessToken = ''; 
var graphURL = 'https://graph.facebook.com/v2.3/'; 

function getPageLikes(campaign_id) { 
    var searchParams = '/stats?fields=actions'; 
    var campaignID = campaign_id; 
    var fullURL = graphURL + campaignID + searchParams + '&access_token=' + myAccessToken; 
    var fetchResult = UrlFetchApp.fetch(fullURL); 
    var campaign = JSON.parse(fetchResult); 
    var likes = campaign.data[0].actions.like; 
    return likes; 
} 

Google Sheet Formula

=getWebClicks('E2') 
+0

Copie possible de [erreur d'API de graphique Facebook UrlFetch a échoué car trop de trafic est envoyé à l'URL spécifiée] (https://stackoverflow.com/questions/31006285/facebook-graph-api-error-urlfetch-failed- car-too-much-traffic-is-being-sent) –

Répondre

2

J'ai découvert une solution après un peu plus de recherche. J'ai ajouté l'option 'useIntranet' comme paramètre à fetchResult et cela semblait résoudre le problème. J'imagine que la requête est maintenant envoyée depuis une autre ressource qui ne limite pas les requêtes à l'API Graph de Facebook.

Si quelqu'un peut expliquer pourquoi que ce soit réglé mon problème, ce serait super aussi!

var options = {"useIntranet" : true}; 
var fetchResult = UrlFetchApp.fetch(fullURL, options); 
+1

Résolu le problème pour moi aussi! Toute autre information sur ce qui se passe ici serait vraiment bien. – Anis

+0

Aujourd'hui, mes scripts ne fonctionnaient plus - j'ai commencé à avoir des délais d'attente et je l'ai réduit à cette option intranet. Maintenant, je dois vraiment comprendre ce qui se passe. – Joel

+1

Je recevais également le même problème mais après avoir ajouté l'option "useIntranet": vrai je reçois le délai d'expiration. Si je partage mon code avec un autre identifiant d'e-mail, cela fonctionne pendant un certain temps, puis de nouveau l'erreur d'extraction d'URL. @Joel Votre problème est-il résolu? – Indra

0

Je n'ai pas Facebook Je ne peux pas essayer, remplacer var fetchResult = UrlFetchApp.fetch(fullURL); avec:

do{ 
    var fetchResult = UrlFetchApp.fetch(fullURL); 
}while(fetchResult == 'UrlFetch failed because too much traffic is being sent to the specified URL.'); 

Ou tout ce qui correspond à cet objet d'erreur.

+1

En fait, une fois que votre add-on/script atteint ce quota, il est permanent pour quelques jours, donc la seule chose que ferait votre script est potentiellement de faire l'interdiction dure plus longtemps. – Mario

+1

@Mario, car il affirme que seul Facebook a l'erreur, il ne peut pas être une interdiction sur le côté Google. – Kriggs

+0

C'est une erreur google, pas une erreur Facebook. – Joel

0

La bonne réponse est: attendez que l'interdiction soit levée.