gpt4 book ai didi

java - 检索谷歌联系人个人资料图片

转载 作者:行者123 更新时间:2023-12-02 12:47:22 25 4
gpt4 key购买 nike

我需要检索 Google 联系人信息,包括联系人的个人资料照片。为此,我使用下面的代码,除了联系人的个人资料图片之外,一切正常:我得到的链接无处可去。还有其他方法可以获取联系人的个人资料图片链接吗?

    GoogleCredential gc = new GoogleCredential();
gc.setAccessToken(accessToken);
ContactsService contactsService = new ContactsService("ServiceName");

contactsService.setOAuth2Credentials(gc);
URL url = new URL("https://www.google.com/m8/feeds/contacts/default/full/?max-results=10000");
ContactFeed feed = null;

try {
feed = contactsService.getFeed(url, ContactFeed.class);
} catch (ServiceException e) {
e.printStackTrace();
}

List<SocialContact> contacts = new ArrayList<>();

if (feed != null) {
for (ContactEntry entry : feed.getEntries()) {
SocialContact contact = new SocialContact();

if (entry.hasName()) {
Name name = entry.getName();

if (name.hasFullName()) {
if (name.hasGivenName()) {
String givenName = name.getGivenName().getValue();

if (name.getGivenName().hasYomi()) {
givenName += " (" + name.getGivenName().getYomi() + ")";
}

contact.setFirstName(givenName);

if (name.hasFamilyName()) {
String familyName = name.getFamilyName().getValue();
if (name.getFamilyName().hasYomi()) {
familyName += " (" + name.getFamilyName().getYomi() + ")";
}
contact.setLastName(familyName);
}
}
}
}

for (PhoneNumber number : entry.getPhoneNumbers()) {
contact.setPhone(number.getPhoneNumber());
}

for (Email email : entry.getEmailAddresses()) {
contact.setEmail(email.getAddress());
}

contact.setProfileImageURL(entry.getContactPhotoLink().getHref());
if(contact.getEmail() != null){
contacts.add(contact);
}
}
}

最佳答案

听起来您正在使用联系人 API,但也许您应该使用 People API反而。下面的代码是从these docs修改而来的:

ListConnectionsResponse response = peopleService.people().connections().list("people/me")
.setPersonFields("names,emailAddresses,photos")
.setPageSize(10000)
.execute();

List<Person> connections = response.getConnections();
if (connections != null && connections.size() > 0) {
for (Person person : connections) {
List<Name> names = person.getNames();
if (names != null && names.size() > 0) {
System.out.println("Name: " + person.getNames().get(0)
.getDisplayName());
} else {
System.out.println("No names available for connection.");
}

List<Photo> photos = person.getPhotos();
if (photos != null && photos.size() > 0){
System.out.println("Photo URL: " + person.getPhotos().get(0).getURL());
}
}
} else {
System.out.println("No connections found.");
}

关于java - 检索谷歌联系人个人资料图片,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44710407/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com