12
votes

I was trying to run the sample app, found here Github Sample, I have created a certificate and created a API Key and applied as instructed. But when I upload the Image I am getting this Exception. I dont know where I have made a mistake. Have I missed anything?

failed to make API request because {
    "code": 403,
    "errors": [{
        "domain": "global",
        "message": "Requests from this Android client application <empty> are blocked.",
        "reason": "forbidden"
    }],
    "message": "Requests from this Android client application <empty> are blocked.",
    "status": "PERMISSION_DENIED"
}
5
Any luck? I am kind of facing the same problem! - stack_ved
I am also facing the same problem. - KnowIT
@amalan-dhananjayan Any chance you have set the bundle identifier in the API key? I'm guessing this might be the same issue we are seeing for the iOS samples. github.com/GoogleCloudPlatform/cloud-vision/issues/16 I will see if maybe there's an Android-specific set of client libraries we should be using instead of the Java ones. - Tim Swast
Yes i have set bundle specifier in my API key, I am not supposed to? - stack_ved
It is working for me. I am creating a Browser Key instead of Android Key under API Manager - Credentials while creating API KEY. For some strange reason, it is working - stack_ved

5 Answers

5
votes

I had the same problem. but I solve this.

If you add Browser API Key, your code works well.

7
votes

I suspect that you are creating an Android API key, restricted to your app, with your sha1 fingerprint registered.

This is great! Unfortunately, the non-android-specific Google API java client library doesn't yet fully support API requests for android api keys, like the android-specific one does. This means that API requests aren't including some headers that authenticate the key/app to the API endpoint, which causes that error (note the client application <empty> in the error message - the <empty> would be your package name, if the request was formed as expected).

I'm still looking for what to do about that - will update if / when I find one.

0
votes

What all did you change in the android project? Make sure that you enable the cloud vision API and enable billing. All I had to do was add my API key in the MainActivity using the same sample from Github.

Take a look at my screenshot

0
votes

some problem here, and i fix it!!!!!

just put Server Key!!

enter image description here

hope its help someone

0
votes

I believe using the browser key would solve your problem. But the actual solution to this is using an OAuth Key. Like an Android App should do.

  1. To do so go to the credentials section from the side menu in Cloud Developer Console.
  2. Click on credentials drop down menu and select OAuth Client ID.
  3. Select Application Type as Android.
  4. Add a suitable name like Android client for Cloud Vision API
  5. Enter your SHA1 fingerprint in the desired format. Using the mentioned command on screen.
  6. Enter the package name for your app, can be located in the defaultConfig block of your gradle.
  7. Click on create.

This is an excerpt form the full tutorial here.