Using the API, create CrmBasedUserList & add email address.
Processing will succeed but the status will not be updated. Tens of hours.
I saw this page and made it.
best regards.
public void sendEmailAddresses(String refreshToken, String customerId, String userListId, List<String> emails) throws GoogleException {
try {
MutateMembersOperand operand = new MutateMembersOperand();
operand.setUserListId(Long.valueOf(userListId));
operand.setDataType(MutateMembersOperandDataType.EMAIL_SHA256);
operand.setMembers(emails.stream().map(s -> getSha256(s.trim().toLowerCase())).collect(Collectors.toList()).toArray(new String[emails.size()]));
MutateMembersOperation operation = new MutateMembersOperation();
operation.setOperand(operand);
operation.setOperator(Operator.ADD);
AdwordsUserListServiceInterface userListService = getUserListService(refreshToken, customerId);
userListService.mutateMembers(new MutateMembersOperation[]{operation});
} catch (RemoteException e) {
logger.error("cannot send emais error={}", e);
throw new GoogleException(e);
}
}
public static String getSha256(String target) {
MessageDigest md = null;
StringBuffer buf = new StringBuffer();
try {
md = MessageDigest.getInstance("SHA-256");
md.update(target.getBytes());
byte[] digest = md.digest();
for (int i = 0; i < digest.length; i++) {
buf.append(String.format("%02x", digest[i]));
}
} catch (NoSuchAlgorithmException e) {
new RuntimeException(e);
}
return buf.toString();
}