0

以下のコードを使用して、Google Directory API 経由で新しいユーザー アカウントを作成しようとしています。返される結果は無効なパスワードです。何のパスワード?ダウンロードした P12 ファイルに問題がありますか?

Collection<String> SCOPE = Arrays.asList("https://www.googleapis.com/auth/admin.directory.user");
String serviceAcctEmailAddress = "xxx@developer.gserviceaccount.com";
String serviceAcctUser = "admin@x.com";

    final HttpTransport TRANSPORT = new NetHttpTransport();
    final JsonFactory JSON_FACTORY = new JacksonFactory();

    GoogleCredential credential = new GoogleCredential.Builder()
        .setTransport(TRANSPORT)
        .setJsonFactory(JSON_FACTORY)
        .setServiceAccountId(serviceAcctEmailAddress)
        .setServiceAccountUser(serviceAcctUser)         
        .setServiceAccountScopes(SCOPE)
        .setServiceAccountPrivateKeyFromP12File(new File("1fc6.p12"))
        .build();

    Directory directory = new Directory.Builder(TRANSPORT, JSON_FACTORY, credential)
        .setApplicationName("API-Project")
        .build();

    // create user object
    User u = new User();
    UserName un = new UserName();  
    un.setGivenName(".");
    un.setFamilyName("x@x.com");
    u.setName(un);
    u.setPassword("Axxx1234");
    u.setHashFunction("SHA-1");
    u.setPrimaryEmail("x@x.com");
    u.setSuspended(false);
    u.setAgreedToTerms(true);

    Directory.Users.Insert addUser = directory.users().insert(u);
    addUser.execute();

以下のエラーを取得します。

Exception in thread "main" com.google.api.client.googleapis.json.GoogleJsonResponseException: 400 Bad Request
{
  "code" : 400,
  "errors" : [ {
    "domain" : "global",
    "message" : "Invalid Password",
    "reason" : "invalid"
  } ],
  "message" : "Invalid Password"
}
at com.google.api.client.googleapis.json.GoogleJsonResponseException.from(GoogleJsonResponseException.java:145)

ご協力いただきありがとうございます。

4

2 に答える 2

1

ハッシュ関数を SHA-1 形式に設定していたようですが、パスワードをその形式で送信していませんでした。ハッシュ関数を削除すると、正しく機能し始めました。

于 2015-02-16T13:04:32.333 に答える