我正在使用Google API开发网络后端。为了获取用户的电子邮件地址,您必须将访问令牌发送到Google Tokeninfo服务,这将返回一般信息(包括您的电子邮件地址)。一般而言,Google API不会返回您登录用户的邮件地址。
我正在进行Scala Play项目,并且正在使用Google提供的Java库。我找到了这个示例,向我展示了如何获取有关访问令牌的信息。
我在示例项目的.pom文件中查看,其中包括" Google-api-services-oauth2"工件。我还想包括此并找到各自的Maven项目。
对于Google API,有一个通用的Java API(" com.google.api-client"%" Google-api-client"%" 1.20.0"),所有其他库在内之上。由于我还使用Google日历API,我的SBT文件看起来像这样:
//add Google Calender API
libraryDependencies ++= Seq(
// "com.google.api-client" % "google-api-client" % "1.20.0",
"com.google.apis" % "google-api-services-calendar" % "v3-rev121-1.20.0"//,
//"com.google.api-client" % "google-api-client-java6" % "1.20.0",
//"com.google.oauth-client" % "google-oauth-client-jetty" % "1.20.0"
)
//tokenInfo endpoint to get email address
libraryDependencies += "com.google.apis" % "google-api-services-oauth2" % "v2-rev91-1.20.0"
但是,如果我尝试创建com.google.api.services.oauth2.oauth2对象,我会收到以下错误消息:
object oauth2 is not a member of package com.google.api.services
[error] com.google.api.services.oauth2.Oauth2
[error] ^
[error] one error found
[error] (compile:compile) Compilation failed
我不太了解错误,因为示例项目的做法完全相同。在Intellij中,我还看到了OAuth2软件包的建议,我不知道为什么不编译。
一切看起来都正确。我认为您只需要在SBT Shell中运行reload
即可在build.sbt
中拾取依赖项。或只是重新启动SBT。