我在当前的项目中遇到了很多问题,这些问题可以在我在StackOverflow上发布的其他问题中找到(其中一个问题尚未解决),但在以允许我测试而不是实际发布应用程序的方式回避了另一个问题之后,我遇到了另一个错误;在下面的代码中:
public class AsyncSheetUpdater extends AsyncTask<String, Void, String> {
Master activity;
@Override
protected String doInBackground(String... urls) {
GoogleAccountCredential credential;
Sheets mService;
credential = GoogleAccountCredential.usingOAuth2(activity.getApplicationContext(), Collections.singletonList(SheetsScopes.SPREADSHEETS))
.setBackOff(new ExponentialBackOff())
.setSelectedAccountName("oscarcookeabbott@gmail.com");
HttpTransport transport = AndroidHttp.newCompatibleTransport();
JsonFactory jsonFactory = JacksonFactory.getDefaultInstance();
mService = new Sheets.Builder(transport, jsonFactory, credential)
.setApplicationName(activity.getString(R.string.app_name))
.setSheetsRequestInitializer(new SheetsRequestInitializer("AIzaSyBreJks4awhrSbyqGkZhgR4rAA61vg0t-g"))
.build();
ValueRange values = new ValueRange();
values.set("EMAIL", "[INSERT EMAIL]");
values.set("AUTH", "[INSERT DATE]");
values.set("SUB", "[INSERT DATE + MONTH]");
try {
mService.spreadsheets().values().append("1meAAvjdPmghn6wl_IKc-_NJx_M85I_yqsn4Nwm_j_X0", "Users", values)
.setValueInputOption("RAW")
.execute();
} catch (IOException e) {
Log.e("DEBUG", "SheetUpdate Exception: ", e);
}
return null;
}
}它正在返回此错误:
com.google.api.client.googleapis.extensions.android.gms.auth.GoogleAuthIOException
at com.google.api.client.googleapis.extensions.android.gms.auth.GoogleAccountCredential$RequestHandler.intercept(GoogleAccountCredential.java:301)
at com.google.api.client.http.HttpRequest.execute(HttpRequest.java:868)
at com.google.api.client.googleapis.services.AbstractGoogleClientRequest.executeUnparsed(AbstractGoogleClientRequest.java:419)
at com.google.api.client.googleapis.services.AbstractGoogleClientRequest.executeUnparsed(AbstractGoogleClientRequest.java:352)
at com.google.api.client.googleapis.services.AbstractGoogleClientRequest.execute(AbstractGoogleClientRequest.java:469)
at com.pybuspr.listeau.AsyncSheetUpdater.doInBackground(AsyncSheetUpdater.java:58)
at com.pybuspr.listeau.AsyncSheetUpdater.doInBackground(AsyncSheetUpdater.java:20)
at android.os.AsyncTask$2.call(AsyncTask.java:304)
at java.util.concurrent.FutureTask.run(FutureTask.java:237)
at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:243)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1133)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:607)
at java.lang.Thread.run(Thread.java:761)
Caused by: com.google.android.gms.auth.GoogleAuthException: UNREGISTERED_ON_API_CONSOLE
at com.google.android.gms.auth.zze$1.zzbt(Unknown Source)
at com.google.android.gms.auth.zze$1.zzbu(Unknown Source)
at com.google.android.gms.auth.zze.zza(Unknown Source)
at com.google.android.gms.auth.zze.zzc(Unknown Source)
at com.google.android.gms.auth.zze.getToken(Unknown Source)
at com.google.android.gms.auth.zze.getToken(Unknown Source)
at com.google.android.gms.auth.zze.getToken(Unknown Source)
at com.google.android.gms.auth.GoogleAuthUtil.getToken(Unknown Source)
at com.google.api.client.googleapis.extensions.android.gms.auth.GoogleAccountCredential.getToken(GoogleAccountCredential.java:269)
at com.google.api.client.googleapis.extensions.android.gms.auth.GoogleAccountCredential$RequestHandler.intercept(GoogleAccountCredential.java:294)这就是我的Google凭证的样子:

我真的希望工作表编辑将是简单的,比如如何在不使用API的情况下直接使用工作表的JSON提要,但我似乎弄错了。
发布于 2017-01-26 13:07:10
我今天也遇到了同样的问题,我用这种方法解决了这个问题:
首先,在调试时,Android默认使用与编译和签署APK发布时通常使用的密钥存储库不同。这意味着您有、两个、不同的密钥存储库和、两个不同的密钥,其中有、两个、不同的SHA1指纹。
用于调试的keystore默认位于以下路径“~/..android/调试器keystore”,而用于发行版的密钥存储库可以在任何您想要的位置,因为您必须手动创建它。
Android为您的调试版本创建的密钥存储库包含一个名为android调试键的密钥,它的默认密码是android,与密钥库的密码相同。
现在,你必须做的是:
1)打开命令行
2)使用keytool命令,键入keytool -exportcert -keystore <path-to-debug-or-production-keystore> -list -v
3)键入密码(android),从它显示的内容中获取SHA1密钥,并将其添加到API接口中。
https://developer.android.com/studio/publish/app-signing.html#debugmode
https://stackoverflow.com/questions/41276281
复制相似问题