特定のビデオに関するデータを取得しようとしている単純なテスト Android アプリを作成しています。デバッグ キーストアの SHA1 フィンガープリントを取得し、それを使用して Google API キー (およびパッケージ名) を作成しました。YouTube API サービスを有効にしました。
これは私のコードです:
YouTube youtube = new YouTube.Builder(new NetHttpTransport(), new GsonFactory(), new HttpRequestInitializer() {
public void initialize(HttpRequest request) throws IOException {}
}).setApplicationName("MyApp").build();
try {
YouTube.Videos.List listVideosRequest = youtube.videos().list("snippet,contentDetails");
listVideosRequest.setId("A3PDXmYoF5U");
listVideosRequest.setKey(GoogleAPIKey.DEBUG_GOOGLE_API_KEY);
VideoListResponse youtubeResponse = listVideosRequest.execute();
List<Video> youtubeVideos = youtubeResponse.getItems();
return youtubeVideos;
} catch (IOException e) {
Log.e("MyApp", e.getLocalizedMessage());
return null;
}
そのため、常に例外が発生します: 403、アクセスが構成されていません。
アイデアが不足しています。何が間違っている可能性があります。APIキーを使用して、Android用のYouTube APIを正常に使用した人はいますか?
アップデート:
Googleに送信される実際のリクエストがどのように見えるかを見つけるために、Googleライブラリを深くデバッグしました。これです:
https://www.googleapis.com/youtube/v3/videos?id=A3PDXmYoF5U&key=[my-debug-google-api-key]&part=snippet,contentDetails
これらのヘッダーを設定すると:
Accept-Encoding: gzip
User-Agent: MyApp Google-HTTP-Java-Client/1.15.0-rc (gzip)
そこには何も問題はありません。