使用Android Studio,我正在创建一个根据某些条件列出YouTube视频的应用。我正在使用搜索列表方法。在应用中,我拨打YouTube API并解析结果。
此应用可以使用'服务器'在我家Wifi上的关键。但是,当切换到Android'键,应用程序不再有效。对API的调用不再返回预期数据,并且出现java.io.FileNotFoundException: https://www.googleapis.com/youtube/v3/search...
错误。
我正在Google Developers Console中设置YouTube API密钥。我创建了一个公共API访问权限' key,使用命令keytool -list -v -keystore .android/debug.keystore
的SHA1输出,然后附加分号和包名称' com.mysite.projectname' (如说明书中所述)。
我很难搞清楚这个问题。似乎API密钥设置正确并且应该正常工作(至少用于开发)。
- 为下面的答案添加编辑
我使用下面的类来存储我的API密钥。我在其他类中使用DeveloperKey.DEVELOPER_KEY
访问密钥。如上所述,当我有一个服务器'密钥而不是' Android'键。
package com.mysite.projectname;
public class DeveloperKey {
public static final String DEVELOPER_KEY = "MyAPIKey";
}
调用API,如:
https://www.googleapis.com/youtube/v3/search?part=snippet........&key=MyAPIKey
答案 0 :(得分:1)
我会将此作为评论发布,但显然我不能,所以这里什么都没有。你是如何在你的应用程序中实现密钥的?最简单的方法是将其放入strings.xml并使用以下内容调用它:
setContentView(R.layout.activity_youtube_player);
//initialize
YouTubePlayerView youTubePlayerView = (YouTubePlayerView) findViewById(R.id.youtube_player);
youTubePlayerView.initialize(getString(R.string.api_youtube), this);
和strings.xml看起来像
<string name="api_youtube">MYFANCYKEYHERE</string>
您可以发布实施的片段吗?
修改强>
听起来你正确地抓住SHA1键(如果你想检查你是否正确行事,可以参考this guy)。要详细说明下面的评论,我不确定您是否可以从Android平台上从该链接中获取YouTube视频。 Youtube API可让您轻松完成此操作,但您必须记住先在清单中输入相应的权限<uses-permission android:name="android.permission.INTERNET" />
。我在下面给出了一个链接,这是一个关于如何使用Google Approved(TM)方式的教程,如果你感到无聊并希望以rtsp方式提取它,this fella有说明如何。 (但我不推荐它,因为质量的废话)。