我正在尝试获取用户电子邮件,我曾经在我的应用程序中执行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中,我都无法找到如何获取我登录的电子邮件。如何获取这些信息?
答案 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窗口中选择电子邮件和频道,并能够获取信息。