我要提前道歉,我很可能會遺漏一些信息,讓任何人知道我的設置是正確的。請讓我知道我還需要指定什麼。 我在我們通過Google託管學生電子郵件帳戶的大學工作。它經常發生,他們忘記了密碼,並必須重置。如果他們驗證了有關他們自己的足夠信息,我們有一個頁面可以設置他們的密碼。我們使用的代碼已被谷歌棄用,轉而使用他們的Directory API。我一直負責將這個舊代碼轉換成:使用其新API的東西。我已經閱讀了大量的文檔和幾個例子,但他們似乎都沒有幫助。我已經通過他們的管理控制檯爲我們的管理員帳戶啓用了Admin SDK,並註冊了我的應用,並從他們的開發者控制檯獲得了密鑰,但我似乎無法得到任何我想要的內容。現在我只是想獲得用戶列表:如何使用Google的Directory API使用Java更改用戶的密碼?
public void testList() throws Exception
{
InputStream is = null;
final String accessToken = getAccessToken();
final NetHttpTransport httpTransport = GoogleNetHttpTransport.newTrustedTransport();
final JsonFactory jsonFactory = JacksonFactory.getDefaultInstance();
final File p12 = new File(GoogleResetterTest.class.getClassLoader().getResource("ead05e56893a.p12").toURI());
GoogleCredential credential = new GoogleCredential.Builder().setTransport(httpTransport)
.setJsonFactory(jsonFactory)
.setServiceAccountId(SERVICE_ACCOUNT_EMAIL)
.setServiceAccountScopes(PlusScopes.all())
.setServiceAccountPrivateKeyFromP12File(p12) //password: notasecret
.setClientSecrets(CLIENT_ID, CLIENT_SECRET)
.build();
final Directory dir = new Directory.Builder(httpTransport, jsonFactory, credential)
.setApplicationName("API Project")
.build();
final Directory.Users diruser = dir.users();
final Directory.Users.List diruserlist = diruser.list().setDomain(EMAIL_DOMAIN);
final HttpResponse response = diruserlist.executeUsingHead();
is = response.getContent();
StringWriter writer = new StringWriter();
IOUtils.copy(is, writer, "UTF-8");
String theString = writer.toString();
IOUtils.closeQuietly(is);
}
在diruserlist.executeUsingHead();行,我得到這樣的響應:
com.google.api.client.auth.oauth2.TokenResponseException:400錯誤的請求 { 「錯誤」: 「invalid_grant」 }
對我來說這是一個非常無用的錯誤信息,因爲似乎有4或5件可能導致錯誤的響應。
我可以幫助我認爲我讓整個事情太複雜。我喜歡原始代碼的簡單性,對新API的一些反應批評它更復雜。有沒有人必須這樣做,並可以指出我正確的方法來解決這個問題?
我跟着你的所有步驟和其他所需的邏輯,但我堅持使用updatePassword方法,因爲它調用getUser,它返回用戶而studentUser是用戶類型如何將用戶轉換爲用戶。請多解釋一下。 – simpleProgrammer 2014-10-09 15:36:01
我想知道這一點 - 用戶!=用戶 – acvcu 2015-04-02 18:53:05
這個答案與https://developers.google.com/identity/protocols/OAuth2ServiceAccount – nacross 2015-06-11 07:41:19