1

Facebook の Graph API を使用してデータを取得する Google スプレッドシートのスクリプトを作成しています。今日はすべてが機能していましたが、突然エラーが発生しました。

指定された URL に送信されるトラフィックが多すぎるため、UrlFetch が失敗しました。

私はまだgraph.facebook.comではない他のURLから取得できるため、UrlFetchの使用に関するクォータに達していません-したがって、問題は特にFacebookにあるようです.

スクリプト コード

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 シートの数式

=getWebClicks('E2')
4

3 に答える 3

2

もう少し調査した後、解決策を発見しました。「useIntranet」オプションをパラメーターとして fetchResult に追加したところ、問題が解決したようです。Facebook の Graph API へのリクエストを制限していない別のリソースからリクエストが送信されていると思います。

これが私の問題を解決した理由を誰かが説明できれば、それも素晴らしいことです!

var options = {"useIntranet" : true};
var fetchResult = UrlFetchApp.fetch(fullURL, options);
于 2015-04-17T16:36:56.947 に答える
1

私はFacebookを持っていないので、これを試すことができませんvar fetchResult = UrlFetchApp.fetch(fullURL);.

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

または、このエラー オブジェクトに一致するもの。

于 2015-04-17T13:11:58.540 に答える