【问题标题】:Android YouTube Data API - Incorrect Android Key SetupAndroid YouTube 数据 API - 不正确的 Android 密钥设置
【发布时间】:2015-04-01 02:58:51
【问题描述】:

使用 Android Studio,我正在创建一个根据某些标准列出 YouTube 视频的应用。我正在使用搜索列表方法。在应用程序中,我调用 YouTube API 并解析结果。

在我的家庭 Wifi 上使用“服务器”键时,此应用可以正常工作。但是,当切换到“Android”键时,该应用程序不再工作。对 API 的调用不再返回预期的数据,并给出 java.io.FileNotFoundException: https://www.googleapis.com/youtube/v3/search... 错误。

我正在 Google Developers Console 中设置 YouTube API 密钥。我使用命令keytool -list -v -keystore .android/debug.keystore 的SHA1 输出创建一个“公共API 访问”密钥,然后附加分号和包名称“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

【问题讨论】:

    标签: java android api youtube youtube-api


    【解决方案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>
    

    你能发布你的实现的 sn-ps 吗?

    编辑

    听起来您正确获取了 SHA1 密钥(如果您想检查是否正确,可以参考 this guy)。为了详细说明我在下面的评论,我不确定您是否真的可以从 Android 平台的该链接中获取 youtube 视频。 Youtube API 让你很容易做到这一点,但你必须记住首先在你的清单中输入适当的权限&lt;uses-permission android:name="android.permission.INTERNET" /&gt;。我在下面提供了一个链接,该链接是关于如何以 Google Approved (TM) 方式进行操作的教程,如果您感到无聊并想以 rtsp 方式进行操作,this fella 有说明如何操作。 (但我不会推荐它,因为质量很糟糕)。

    【讨论】:

    • 嗯,我在问更多关于您在 youtube 播放器中使用密钥的具体情况。我以前从未使用过服务器密钥,但是当我上次使用 Android 密钥时遇到 FileNotFound 错误时,这是​​因为我混淆了视频 ID 和 api 密钥的放置位置。这显然不是你的问题,但如果不看看你是如何使用密钥的,就很难知道发生了什么。
    • 嗯,我对 YouTube 播放器没有问题,只是从对搜索列表方法的调用中解析 JSON。所以我向https://www.googleapis.com/youtube/v3/search?part=snippet........&amp;key=MyAPIKey 发出请求并解析结果。
    • 啊。好的。我从未使用 API 从 Android 直接调用 youtube,在某种程度上我想知道这是否可能。据我所知,在 Android 上使用 Youtube 时,您有两种选择。一个(推荐!)您使用 YoutubePlayer API,它非常易于使用,或者两个,您使用 RTSP 链接,解析 JSON,并获得一个(通常质量非常糟糕的)视频。 This 是一个很好的例子来说明如何实现前者。
    猜你喜欢
    • 2011-06-15
    • 2021-06-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-11-24
    • 1970-01-01
    • 1970-01-01
    • 2012-08-22
    相关资源
    最近更新 更多