2

我正在使用Google API開發web後端。 爲了獲得用戶的電子郵件地址,您必須將您的訪問令牌發送給Google tokenInfo服務,該服務將返回一般信息(包括您的電子郵件地址)。一般來說,Google API不會向您返回登錄用戶的郵件地址。Google API:object oauth2不是com.google.api.services包的成員

我正在做一個Scala Play項目,我正在使用Google提供的Java庫。我發現this example顯示我如何獲取有關我的訪問令牌的信息。

我查看了示例項目的.pom文件,其中包含「google-api-services-oauth2」工件。我也想包括這個,並找到了respective Maven project

對於Google API,有一個可用的常規Java API(「com.google.api-client」%「google-api-client」%「1.20.0」),其中包括Drive和Calendar API基於。由於我也使用谷歌日曆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包的建議,我不知道爲什麼它不能編譯。

回答

3

一切都看起來正確。我想你只需要在你的sbt shell中運行reload就可以在你的build.sbt中找到依賴關係。或者只是重新開始sbt。

+1

哦,夥計,你是對的......只是爲了好奇。當我添加新的依賴項時,是否總是必須重新啓動sbt? – slashburn

+2

無論何時您更改構建的源代碼(build.sbt),您都需要重新編譯並運行它,但不要重新啓動只運行'reload'。 –