поиск YouTube с использованием API данных YouTube v3 в Android

Я разрабатываю новое приложение с этой функцией:
- пользователь может искать видео на YouTube из приложения ..
Я пытался использовать youtube api .. я создал проект в консоли Google, сгенерировал api_key с ограничением приложений для Android (написал пакет приложения и отпечаток сертификата SHA-1).
Я использовал эту ссылку: https://www.googleapis.com/youtube/v3/search?part=snippet&q=blabla&type=video&key=[api_key]
как я получил от: https://developers.google.com/youtube/v3/docs/search/list
но, к сожалению, я получил этот ответ и не понимаю, почему

{
 "error": {
  "errors": [
   {
    "domain": "usageLimits",
    "reason": "ipRefererBlocked",
    "message": "The request did not specify any Android package name or signing-certificate fingerprint. Please ensure that the client is sending them or use the API Console to update your key restrictions.",
    "extendedHelp": "https://console.developers.google.com/apis/credentials?project=953519755004"
   }
  ],
  "code": 403,
  "message": "The request did not specify any Android package name or signing-certificate fingerprint. Please ensure that the client is sending them or use the API Console to update your key restrictions."
 }
}

я надеюсь, что кто-нибудь может спасти мой день


person Seif E. Attia    schedule 04.10.2019    source источник
comment
Проверьте, включен ли у вас API данных YouTube, с помощью ссылки . Также проверьте, есть ли у вас действующий ключ API.   -  person Amrit Bhattacharjee    schedule 04.10.2019
comment
Я включил API данных YouTube, и у меня есть действующий ключ API, потому что я использовал его в другом, чтобы убедиться, что он действителен или нет @AmritBhattacharjee   -  person Seif E. Attia    schedule 04.10.2019


Ответы (1)


вам может потребоваться установить два заголовка запроса:

Ключ API Youtube

youTube = new YouTube.Builder (new NetHttpTransport (), JacksonFactory.getDefaultInstance (), new HttpRequestInitializer () {@Override public void initialize (запрос HttpRequest) выбрасывает IOException {String packageName = context.getPackageName (); String packageName = context.getPackageName (); );

    request.getHeaders().set("X-Android-Package", packageName);
    request.getHeaders().set("X-Android-Cert",SHA1);
}

}). setApplicationName (имя приложения) .build ();

person nichole    schedule 27.11.2019