2016-10-20 12 views
0

我想在Android上为Gmail创建一个客户端应用程序(我已经看到有很多关于此问题的问题)。用于Android应用程序的Gmail的OAuthentication错误

(我见过类似这样的问题:How to integrate Gmail Api in android app但我的问题是不是与SHA1键)

我使用的Andorid的开发者网站上给出的链接:https://developers.google.com/gmail/api/quickstart/android

我在此基础上开展了第一项活动,并在Google开发者控制台中创建了API访问权限。

我使用usingOAuth拿到证书,

mCredential = GoogleAccountCredential.usingOAuth2(
      getApplicationContext(), Arrays.asList(SCOPES)) 
      .setBackOff(new ExponentialBackOff()); 

我看见了在我的手机配置的邮件ID列表,当我选择一个我称之为异步方法服务:

public MakeRequestTask(GoogleAccountCredential credential) { 
     HttpTransport transport = AndroidHttp.newCompatibleTransport(); 
     JsonFactory jsonFactory = JacksonFactory.getDefaultInstance(); 
     mService = new com.google.api.services.gmail.Gmail.Builder(
       transport, jsonFactory, credential) 
       .setApplicationName("mailclient") 
       .build(); 
    } 

这只能在异步服务的onCancelled()方法,并提供误差

10-20 01:58:23.456 13659-13659/sevenre.dinesh.de.com.mailclient W/System.err: { 
10-20 01:58:23.456 13659-13659/sevenre.dinesh.de.com.mailclient W/System.err: "code" : 403, 
10-20 01:58:23.456 13659-13659/sevenre.dinesh.de.com.mailclient W/System.err: "errors" : [ { 
10-20 01:58:23.456 13659-13659/sevenre.dinesh.de.com.mailclient W/System.err:  "domain" : "usageLimits", 
10-20 01:58:23.456 13659-13659/sevenre.dinesh.de.com.mailclient W/System.err:  "message" : "Access Not Configured. Gmail API has not been used in project 608941808256 before or it is disabled. Enable it by visiting https://console.developers.google.com/apis/api/gmail/overview?project=608941808256 then retry. If you enabled this API recently, wait a few minutes for the action to propagate to our systems and retry.", 
10-20 01:58:23.456 13659-13659/sevenre.dinesh.de.com.mailclient W/System.err:  "reason" : "accessNotConfigured", 
10-20 01:58:23.456 13659-13659/sevenre.dinesh.de.com.mailclient W/System.err:  "extendedHelp" : "https://console.developers.google.com/apis/api/gmail/overview?project=608941808256" 
10-20 01:58:23.456 13659-13659/sevenre.dinesh.de.com.mailclient W/System.err: } ], 
10-20 01:58:23.456 13659-13659/sevenre.dinesh.de.com.mailclient W/System.err: "message" : "Access Not Configured. Gmail API has not been used in project 608941808256 before or it is disabled. Enable it by visiting https://console.developers.google.com/apis/api/gmail/overview?project=608941808256 then retry. If you enabled this API recently, wait a few minutes for the action to propagate to our systems and retry." 
10-20 01:58:23.456 13659-13659/sevenre.dinesh.de.com.mailclient W/System.err: } 
10-20 01:58:23.456 13659-13659/sevenre.dinesh.de.com.mailclient W/System.err:  at com.google.api.client.googleapis.services.json.AbstractGoogleJsonClientRequest.newExceptionOnError(AbstractGoogleJsonClientRequest.java:113) 
10-20 01:58:23.457 13659-13659/sevenre.dinesh.de.com.mailclient W/System.err:  at com.google.api.client.googleapis.services.json.AbstractGoogleJsonClientRequest.newExceptionOnError(AbstractGoogleJsonClientRequest.java:40) 
10-20 01:58:23.457 13659-13659/sevenre.dinesh.de.com.mailclient W/System.err:  at com.google.api.client.googleapis.services.AbstractGoogleClientRequest$1.interceptResponse(AbstractGoogleClientRequest.java:321) 
10-20 01:58:23.457 13659-13659/sevenre.dinesh.de.com.mailclient W/System.err:  at com.google.api.client.http.HttpRequest.execute(HttpRequest.java:1065) 
10-20 01:58:23.457 13659-13659/sevenre.dinesh.de.com.mailclient W/System.err:  at com.google.api.client.googleapis.services.AbstractGoogleClientRequest.executeUnparsed(AbstractGoogleClientRequest.java:419) 
10-20 01:58:23.457 13659-13659/sevenre.dinesh.de.com.mailclient W/System.err:  at com.google.api.client.googleapis.services.AbstractGoogleClientRequest.executeUnparsed(AbstractGoogleClientRequest.java:352) 
10-20 01:58:23.457 13659-13659/sevenre.dinesh.de.com.mailclient W/System.err:  at com.google.api.client.googleapis.services.AbstractGoogleClientRequest.execute(AbstractGoogleClientRequest.java:469) 
10-20 01:58:23.457 13659-13659/sevenre.dinesh.de.com.mailclient W/System.err:  at sevenre.dinesh.de.com.mailclient.MainActivity$MakeRequestTask.getDataFromApi(MainActivity.java:358) 
10-20 01:58:23.457 13659-13659/sevenre.dinesh.de.com.mailclient W/System.err:  at sevenre.dinesh.de.com.mailclient.MainActivity$MakeRequestTask.doInBackground(MainActivity.java:340) 
10-20 01:58:23.457 13659-13659/sevenre.dinesh.de.com.mailclient W/System.err:  at sevenre.dinesh.de.com.mailclient.MainActivity$MakeRequestTask.doInBackground(MainActivity.java:320) 
10-20 01:58:23.457 13659-13659/sevenre.dinesh.de.com.mailclient W/System.err:  at android.os.AsyncTask$2.call(AsyncTask.java:292) 
10-20 01:58:23.457 13659-13659/sevenre.dinesh.de.com.mailclient W/System.err:  at java.util.concurrent.FutureTask.run(FutureTask.java:237) 
10-20 01:58:23.457 13659-13659/sevenre.dinesh.de.com.mailclient W/System.err:  at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:231) 
10-20 01:58:23.457 13659-13659/sevenre.dinesh.de.com.mailclient W/System.err:  at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112) 
10-20 01:58:23.457 13659-13659/sevenre.dinesh.de.com.mailclient W/System.err:  at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587) 
10-20 01:58:23.457 13659-13659/sevenre.dinesh.de.com.mailclient W/System.err:  at java.lang.Thread.run(Thread.java:818) 
10-20 01:58:32.709 13659-13659/sevenre.dinesh.de.com.mailclient W/InputEventReceiver: Attempted to finish an input event but the input event receiver has already been disposed. 

该应用程序试图连接到的网址是不是适当的一个

https://console.developers.google.com/apis/api/gmail/overview?project=608941808256 

我不知道我在做什么错在这里,我认为我必须做的唯一事情是给无论是API或客户端ID在应用程序的某处。但我不确定我应该在哪里给这些常量?

回答

2

请检查您的Gmail API和其他API是否已在Google Developers Console中启用。要启用它,请从API菜单中选择Gmail API,然后请点击启用(如下图所示)。

enable Gmail API

此外,您可能还需要检查这个GitHub post或本SO post

+0

对于相同的代码,当我在android 2.2上运行它时(在它是android 1.4之前),我已经开始工作了。我不确定问题是什么,我应该看看。但现在我有它的工作。 –

相关问题