【问题标题】:Get user information Youtube v3 api after oauthoauth后获取用户信息Youtube v3 api
【发布时间】:2018-07-15 19:57:30
【问题描述】:

我正在尝试获取用户电子邮件,这是我在应用程序中通过 Youtube 执行 Oauth2 时用来登录的。代码类似这样:

        YouTube client = new YouTube.Builder(GoogleNetHttpTransport.newTrustedTransport(), JacksonFactory
            .getDefaultInstance(), credential)
            .setApplicationName("app_name").build();

        YouTube.Channels.List channelListByIdRequest = client.channels().list("snippet,contentDetails,statistics");
        channelListByIdRequest.setMine(true);
        ChannelListResponse channelListResponse = channelListByIdRequest.execute();

这里我提取了频道 api,根据文档,它类似于 v3 中的用户 api。但是,无论是在 Channel 还是在任何其他 API 中,我都找不到如何获取我登录时使用的电子邮件。如何访问这些信息?

【问题讨论】:

  • 不要认为 Youtube API 是用来获取电子邮件等个人信息的。但是,请尝试使用 GoogleIdToken.Payload,因为它有 getEmail() 方法。

标签: java youtube youtube-api youtube-data-api


【解决方案1】:

我做了一些研究,不幸的是,确实无法获取电子邮件。据我了解,这与 Youtube 及其数据 API 的概念背道而驰——它处理频道,其中多个频道可以与一封电子邮件相关联。 以此作为参考: https://developers.google.com/youtube/v3/getting-started

但是,您可以使用 Google plus API 范围和 Youtube 范围来获取用户信息(但我们需要考虑到它将在 2019 年 3 月 7 日之前被丢弃)

     GoogleNetHttpTransport.newTrustedTransport(), JacksonFactory.getDefaultInstance(), clientSecrets,
    Arrays.asList(YouTubeScopes.YOUTUBE_FORCE_SSL, PlusScopes.PLUS_ME, PlusScopes.USERINFO_EMAIL))
    .setAccessType("offline").setApprovalPrompt("force").build();

系统将提示我们在 Oauth 窗口中选择电子邮件和频道,然后就可以获取信息了。

【讨论】:

    猜你喜欢
    • 2020-02-04
    • 2014-11-16
    • 2015-08-10
    • 2015-04-14
    • 2016-03-20
    • 2018-04-26
    • 2012-07-29
    • 2021-01-23
    • 2015-03-15
    相关资源
    最近更新 更多