1

私は、50件のレポート投稿リクエストを使って非同期バッチリクエストを作成しています。FacebookグラフAPI広告レポートの実行 - メッセージ:サポートされていない取得リクエスト

最初のバッチ要求は私にレポートIDを返します

第一ステップ

dynamic report_ids = await fb.PostTaskAsync(new 
        { 
         batch = batch, 
         access_token = token 
        }); 

次の私は、彼らが準備ができているかどうかを確認するために、非同期の状態を取得するには、レポートの情報を取得していますダウンロード。

2STステップ

var tListBatchInfo = new List<DataTypes.Request.Batch>(); 
         foreach (var report in report_ids) 
         { 
          if (report != null) 
           tListBatchInfo.Add(new DataTypes.Request.Batch 
           { 
            name = !ReferenceEquals(report.report_run_id, null) ? report.report_run_id.ToString() : report.id, 
            method = "GET", 
            relative_url = !ReferenceEquals(report.report_run_id, null) ? report.report_run_id.ToString() : report.id, 
           }); 

         } 
dynamic reports_info = await fb.PostTaskAsync(new 
         //dynamic results = fb.Post(new 
         { 
          batch = JsonConvert.SerializeObject(tListBatchInfo), 
          access_token = token 
         }); 

私は第二段階

メッセージでそれらを呼び出すたら、最初のステップで生成されたIDのいくつかは、このエラーを返している:サポートされていないget要求。 ID '6057XXXXXX' のオブジェクトが存在しないか、権限がないために読み込めないか、 はこの操作をサポートしていません。 https://developers.facebook.com/docs/graph-api

でグラフAPIドキュメントを読んでください、私はFacebookのAPIエクスプローラを使用して、それを見ることができるので、IDが正しいことを知っています。私は間違って何をしていますか?

答えて

1

これはFacebookのレプリケーションラグが原因である可能性があります。これは通常、POST要求がサーバーAにルーティングされてレポートIDが返されたときに発生しますが、そのIDへのクエリはサーバーBにルーティングされます。サーバーBはレポートの存在をまだ認識していません。

IDを後で照会しようとすると動作した場合、それは遅れです。このための公式のFBアドバイスは、レポートに問い合わせる前にちょっと待つだけです。

https://developers.facebook.com/bugs/250454108686614/

+0

Thxをデイヴィッド、実際に私はそれが知られている「バグ」だったことを知らずにこれをしませんでした。私はこれらのエラーをキャッチし、これらのIDを後でクエリーするためにキューに入れ、それがうまくいった。 – bmvr

関連する問題