Ограничить Youtube API_KEY только моим приложением для AndroidJAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Ограничить Youtube API_KEY только моим приложением для Android

Сообщение Anonymous »

Я пытаюсь ограничить свой API_KEY только своим приложением. На странице редактирования ключа API я установил «Приложения Android» и установил имя пакета и отпечаток пальца.
Имя пакета такое же, как в моем AndroidManifest.xml:


Я также передаю имя в коде:
public YouTube getYouTubeService() throws GeneralSecurityException, IOException {
return new YouTube.Builder(GoogleNetHttpTransport.newTrustedTransport(), JSON_FACTORY, null)
.setApplicationName("com.xxxxxx.yyyyyy")
.build();
}

Отпечаток пальца — это отладочный, восстановленный, как описано на странице:
keytool -list -v -keystore "%USERPROFILE%\.android\debug.keystore" -alias androiddebugkey -storepass android -keypass android

У меня также есть способ отобразить отпечаток пальца только для подтверждения:
public String getSHA1Fingerprint() {
try {
PackageInfo info = getPackageManager().getPackageInfo(getPackageName(), PackageManager.GET_SIGNATURES);
for (Signature signature : info.signatures) {
MessageDigest md = MessageDigest.getInstance("SHA-1");
md.update(signature.toByteArray());
byte[] digest = md.digest();

// Convert to colon-separated hex
StringBuilder hexString = new StringBuilder();
for (int i = 0; i < digest.length; i++) {
if (i > 0) {
hexString.append(":");
}
String hex = Integer.toHexString(0xFF & digest);
if (hex.length() == 1) {
hexString.append("0"); // Pad with leading zero
}
hexString.append(hex);
}
return hexString.toString().toUpperCase();
}
} catch (Exception e) {
e.printStackTrace();
}
return null;
}

Поэтому я в некоторой степени уверен, что та же информация, что и на странице редактирования ключа API, находится в моем приложении.
Но когда я применяю изменения к ключу, я получаю ошибка 403. Когда я их удалю, я смогу просмотреть видео с YouTube (например).
Ошибка 403:
GET https://youtube.googleapis.com/youtube/ ... entDetails
{
"code": 403,
"details": [
{
"@type": "type.googleapis.com/google.rpc.ErrorInfo",
"reason": "API_KEY_ANDROID_APP_BLOCKED",
"domain": "googleapis.com",
"metadata": {
"service": "youtube.googleapis.com",
"consumer": "projects/1063253415806"
}
}
],
"errors": [
{
"domain": "global",
"message": "Requests from this Android client application are blocked.",
"reason": "forbidden"
}
],
"message": "Requests from this Android client application are blocked.",
"status": "PERMISSION_DENIED"
}


Подробнее здесь: https://stackoverflow.com/questions/792 ... ndroid-app
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»