在oauth之后获取用户信息Youtube v3 api

时间:2018-02-05 21:03:32

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

我正在尝试获取用户电子邮件,我曾经在我的应用程序中执行Oauth2到Youtube时登录。代码类似于:

        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,根据doc是某种类似于v3中的用户api。但是,无论是在Channel还是在任何其他API中,我都无法找到如何获取我登录的电子邮件。如何获取这些信息?

1 个答案:

答案 0 :(得分:0)

我已经进行了一些研究,很遗憾,确实没有可能提取电子邮件。据我了解,这与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窗口中选择电子邮件和频道,并能够获取信息。