2

ドライブ サービスでビルドを呼び出すと、断続的にこのエラーが発生します。JSON資格情報がファイルに保存されている単純なプログラムでこれを再現できます。

#!/usr/bin/python

import httplib2
import sys
from apiclient.discovery import build
from oauth2client.client import Credentials

json_creds = open('creds.txt', 'r').read()
creds = Credentials.new_from_json(json_creds)

http = httplib2.Http()
http = creds.authorize(http)

try:
    drive_service = build('drive', 'v2', http=http)
except Exception:
    sys.exit(-1)

これをループで実行すると、かなりの数のエラーが表示されます。ループ内のこのコードは、15 ~ 25% の確率で失敗します。

i=0; while [ $i -lt 100 ]; do python jsoncred.py || echo FAIL ; i=$(( $i + 1 )); done | grep FAIL | wc -l

これと同じコードを使用して、「ドライブ」を「oauth2」に置き換えると、コードは問題なく実行されます

使用している OAuth トークンが有効であり、正しいスコープを持っていることを確認しました。

"expires_in": 2258,

"スコープ": " https://www.googleapis.com/auth/userinfo.profile https://www.googleapis.com/auth/drive https://www.googleapis.com/auth/userinfo.email ",

アプリのログを見ると、これは 2013 年 2 月 14 日午後 1 時 (PST) に開始されたようです。新しいコードをプッシュしていないので、これは API の問題なのだろうか。これを引き起こす API のバグはありますか?

4

1 に答える 1

2

Google では、ディスカバリー ドキュメントのエラー率が上昇しているという報告をいくつか目にしています。とりあえず 500 エラーで再試行してください。成功するはずです。

とにかく、この呼び出しには再試行ロジックが必要であると主張する人もいるかもしれませんが、それは良い習慣ですが、現在のレベルが高すぎるため、申し訳ありません。

更新:これは修正されるはずです。

于 2013-02-18T03:28:24.843 に答える