Android. Google API Translate
Asked Answered
S

1

4

I have some problems to integrate Google API Translate. Add to gradle configuration this dependecies:

compile 'com.google.apis:google-api-services-translate:v2-rev41-1.20.0'
compile ('com.google.api-client:google-api-client-android:1.20.0') {
    exclude module: 'httpclient'
}
compile ('com.google.http-client:google-http-client-gson:1.20.0') {
    exclude module: 'httpclient'
}

And use this sample to translate some text:

final Translate translate = new Translate.Builder(
                AndroidHttp.newCompatibleTransport(), AndroidJsonFactory.getDefaultInstance(),
                new HttpRequestInitializer() {
                    @Override
                    public void initialize(HttpRequest httpRequest) throws IOException {
                        Log.d(TAG, "Http requst: " + httpRequest);
                    }
                })
                .setTranslateRequestInitializer(new TranslateRequestInitializer("ANDROID_API_KEY"))
                .build();
                 try {
                    String shot = PreferenceManager.getLanguage(App.getInst()).getLanguageShot();
                    Translate.Translations.List request = translate.translations().list(Arrays.asList(text), shot);
                    TranslationsListResponse tlr = request.execute();
                    List<TranslationsResource> list = tlr.getTranslations();
                    result = list.get(0).getTranslatedText();
                } catch (IOException e) {
                    e.printStackTrace();
                }

But I always receive IOException:

{error: {errors: [{domain: "usageLimits",reason: "ipRefererBlocked",message: "There is a per-IP or per-Referer restriction configured on your API key and the request does not match these restrictions. Please use the Google Developers Console to update your API key configuration if request from this IP or referer should be allowed.",extendedHelp: "https://console.developers.google.com"}],code: 403,message: "There is a per-IP or per-Referer restriction configured on your API key and the request does not match these restrictions. Please use the Google Developers Console to update your API key configuration if request from this IP or referer should be allowed."}}

But, if I use Browser key, that work success. Why I can't use my android API key in this feature? Any idea?

Stilton answered 11/9, 2015 at 17:27 Comment(4)
Post the details from your IOExceptionKalila
I have posted result JSON message.Stilton
@Nick Can you provide a link to an example of the Google Translate API being used with an Android API key?Active
The documentation for the Translate API Client Library has Android specifics, and you can also find Q&A's on Stack Overflow about the topic.Copolymer
P
0

The process for setting up an API Key is now more clear. By default, you create a generic API key that works everywhere, but you can add restrictions to the key such as Android package names, HTTP referrers or IP addresses.

For specific please see the client library documentation for OAuth 2.0 instructions for Android, and the Cloud Console support documentation for setting up API keys.

Porkpie answered 27/1, 2017 at 17:56 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.