4

以下のコードは、Google の nodejs クライアント バージョンを使用して、Google Analytics Reporting API を呼び出し0.7 ますsocket hang up一部の実行でエラーが返されますが、常にではありません。これは Google のサーバー側のエラーでしょうか? デバッグする簡単な方法はありますか? ところで、レート制限が原因かどうかはわかりませんが、連続して複数の呼び出しを行っています。

gapi = require "googleapis"
authClient = new gapi.auth.JWT(
  config.ga.clientEmail,
  config.ga.privateKeyPath,
  null,
  [config.ga.scopeUri]
)

authPromise = new Promise (resolve, reject) ->
  authClient.authorize (err, token) ->
      resolve token
    return
  return

authPromise.then ->
  gapi.discover('analytics', 'v3')
    .withAuthClient(authClient)
    .execute (err, client) ->
      ...
4

1 に答える 1

1

クライアントを正常に取得して実行した後、エラーが発生しました。 client.analytics.data.ga.get(queryObj).execute (err, result) -> ....

API クライアントの寄稿者である Ryan Seys は、ここで を.discover一度呼び出して、結果clientを再利用することを提案しました。私は.discover何百回も連続して電話をかけ、たくさんの新しい を作成していましたclient。サーバーはおそらくそれが気に入らなかったでしょう。保存して再利用することでclient、問題は解消されました。繁栄のための作業コード:

gapi = require "googleapis"
authClient = new gapi.auth.JWT(
  config.ga.clientEmail,
  config.ga.privateKeyPath,
  null,
  [config.ga.scopeUri]
)

authPromise = new Promise (resolve, reject) ->
  authClient.authorize (err, token) ->
    gapi.discover('analytics', 'v3').withAuthClient(authClient).execute (err, client) ->
      resolve client
      return
    return
  return

authPromise.then (client) ->
  client.analytics.data.ga.get(queryObj).execute (err, result) ->
于 2014-06-11T06:41:11.617 に答える