Google Drive Rest API: Daily Limit for Unauthentic

2020-04-10 00:54发布

问题:

I'm migrating my app from deprecated Google Drive Android API to Drive Rest API. I implemented required behavior using new packages and everything works fine in emulator - app asks for access to user's Drive and getting it uploads files. When I started to test it on real device I get this error:

Daily Limit for Unauthenticated Use Exceeded. Continued use requires signup

I already had configured project in https://console.developers.google.com that worked fine with old library (it has required ../auth/drive.file scope). According to migration documentation - old configuration should work with new library without changes.

What other reasons could be for this error?

回答1:

Funny, I've been dealing with this the past so many days and waiting 24 hours to see if something fixed it. Its a really crappy problem.

PRIMARY ANSWER

I have a feeling you're using ProGuard same as I am assuming by "real device" that you're building signed apk as you do not specify if you're using signed or debug apk. ProGuard can cause this error to happen. I fixed it using the following.

# Fix OAuth Drive API failure for release builds
-keep class * extends com.google.api.client.json.GenericJson { *; }
-keep class com.google.api.services.drive.** { *; }
-keepclassmembers class * { @com.google.api.client.util.Key <fields>; }

SECONDARY ANSWER

Note that you DO NOT need to use keys/tokens using the Drive rest API with Android like you may find from other solutions (it may not hurt either, but it can). It doesn't match up here to what people talk about elsewhere (here they don't know what they're talking about).

See my notes here for further info: Google Drive via OAuth release version receives dailyLimitExceededUnreg

IF you have the problem however in debug build then you did not do everything correctly. My notes should get you on the right track.

If you need further help, I might assist because of how nuts it is.