首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >GoogleAuthException: UNREGISTERED_ON_API_CONSOLE试图添加到Google API V4

GoogleAuthException: UNREGISTERED_ON_API_CONSOLE试图添加到Google API V4
EN

Stack Overflow用户
提问于 2016-12-22 05:24:16
回答 1查看 3.4K关注 0票数 0

我在当前的项目中遇到了很多问题,这些问题可以在我在StackOverflow上发布的其他问题中找到(其中一个问题尚未解决),但在以允许我测试而不是实际发布应用程序的方式回避了另一个问题之后,我遇到了另一个错误;在下面的代码中:

代码语言:javascript
运行
复制
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;
    }
}

它正在返回此错误:

代码语言:javascript
运行
复制
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提要,但我似乎弄错了。

EN

回答 1

Stack Overflow用户

发布于 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

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41276281

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档