Android YouTube数据API - 不正确的Android密钥设置

时间:2015-02-02 07:42:53

标签: java android api youtube youtube-api

使用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

1 个答案:

答案 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有说明如何。 (但我不推荐它,因为质量的废话)。