【发布时间】:2015-09-14 06:05:45
【问题描述】:
我正在尝试在 Android 上使用 YouTubeData API 和 OAuth 2.0 身份验证,但我有点挣扎。
我在网上搜索了很多,但是对于Android的实现帮助不大。
首先,我不清楚获取 OAuth 令牌的最佳方式是什么。在文档中,他们建议对于 Android,最好使用 Google Play 服务库来获取它。真的吗?如果是,那么遵循本指南应该很简单:https://developers.google.com/android/guides/http-auth。
但此时我将在String 对象中拥有令牌.. 我应该如何将它与 YouTubeData API 一起使用?我应该把它放在YouTube.Builder 的某个地方吗?
YouTube youtube = new YouTube.Builder(Auth.HTTP_TRANSPORT, Auth.JSON_FACTORY, new HttpRequestInitializer() {
public void initialize(HttpRequest request) throws IOException {
}
}).setApplicationName("AppName").build();
如果有,有人知道在哪里吗?
在 StackOverflow 上搜索我遇到了这个问题:What to do after getting Auth Token - Android Youtube API。这里 Ibrahim Ulukaya 说最好使用GoogleAccountCredential。据我所知(Access to Google API - GoogleAccountCredential.usingOAuth2 vs GoogleAuthUtil.getToken()),Android 版本的GoogleAccountCredential 应该使用 Google Play 服务库提供的GoogleAuthUtil,因此简化流程可能非常有用。我查看了 Ibrahim Ulukaya (https://github.com/youtube/yt-direct-lite-android) 建议的示例项目,并且我已经像他一样实现了所有内容。但它似乎不太好用,因为我只在 logcat 中获得这条消息:“出现 IO 错误:com.google.android.gms.auth.UserRecoverableAuthException:NeedPermission:null”。
(请注意,我已在 Google 控制台上启用了所有必需的 API,并为我的应用创建了客户端 ID)
在这一点上,我有点迷路了。
我应该直接使用 Google Play 服务库中的 GoogleAuthUtil 吗?在这种情况下,一旦获得了String 的令牌,我如何将它与 YouTubeData API 一起使用?
还是我应该使用 GoogleAccountCredential ?在这种情况下,有人知道我该如何解决“NeedPersmission:null”错误?
---- 编辑:
关于我的应用尝试做什么的详细信息:这是我第一次体验这种 API,我从简单的东西开始:检索视频信息,然后播放这些视频,无需任何用户身份验证.我很容易做到这一点,但为了我的应用程序的目的,我需要访问用户数据,特别是用户必须能够喜欢和评论视频。 所以我开始实现 OAuth2,尝试执行与之前相同的查询(检索视频信息)。
【问题讨论】:
标签: android oauth-2.0 youtube-api google-play-services youtube-data-api