Reputation: 898
I am trying to build a client app for Gmail on android, (I have seen that there are a lot of questions on this).
(I have seen the question similar to this : How to integrate Gmail Api in android app. But my problem isn't with the SHA1-Key)
I am using the link given in the Andorid developer site: https://developers.google.com/gmail/api/quickstart/android
I have made the first activity based on this and have also created the API access in the google developers console.
I am using the usingOAuth to get the credentials ,
mCredential = GoogleAccountCredential.usingOAuth2(
getApplicationContext(), Arrays.asList(SCOPES))
.setBackOff(new ExponentialBackOff());
I am able to view the list of mail IDs that are configured in my phone, and when I select one I call the method in the Async service :
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();
}
This only goes to the onCancelled() method in the Async service and provides the error
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.
The URL that the app tries to connect to is not a proper one
https://console.developers.google.com/apis/api/gmail/overview?project=608941808256
I am not sure what am I doing wrong here, the only thing I believe I have to do is give either the API or Client ID somewhere in the App. But I am not sure where should I give those constants ?
Upvotes: 0
Views: 133
Reputation: 8082
Please check if your Gmail API and other APIs that you also use have already been enabled in the Google Developers Console. To enable it, select Gmail API from API menu then please click on enable if you haven't done so (photo shown below).
Additionally, you may want to also check this GitHub post or this SO post.
Upvotes: 2