我在集成 Google API Translate 时遇到一些问题。
添加到 gradle 配置此依赖项:
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'
}
并使用此示例来翻译一些文本:
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();
}
但我总是收到 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."}}
但是,如果我使用浏览器键,那么工作就会成功。为什么我无法在此功能中使用我的 Android API 密钥?任何想法?