首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >gData:获取账号(自联系)名和姓

gData:获取账号(自联系)名和姓
EN

Stack Overflow用户
提问于 2012-03-26 20:54:37
回答 1查看 859关注 0票数 1

我想获得一个使用gdata库的谷歌帐户的名字和姓氏。我有身份验证令牌(我从android设备上获取它-将它发送到我的java servlet-然后应该使用first、last、display name和provider_uid在mysql数据库中添加一个插入(provider_uid是https://www.google.com/accounts/o8/id?id=AItOawmyn的形式...))。

我使用了这样的联系人提要(没有成功):

代码语言:javascript
复制
public String tryGoogleAuthentication(String auth_token){
    ContactsService contactsService = new ContactsService("...");
    contactsService.setUserToken(auth_token);
    //contactsService.setAuthSubToken(auth_token);

    ContactFeed feed = null;
    try {
        feed = contactsService.getFeed(new URL("https://www.google.com/m8/feeds/contacts/" + "someEmail@gmail.com" + "/full?max-results=10000"), ContactFeed.class);            
    } catch (IOException e) {
        e.printStackTrace();
        return CONST.GOOGLE_AUTH_INVALID_TOKEN;
    } catch (ServiceException e) {          
        e.printStackTrace();
        return CONST.GOOGLE_AUTH_INVALID_TOKEN;
    } catch (NullPointerException e) {
        e.printStackTrace();
        return CONST.GOOGLE_AUTH_INVALID_TOKEN;
    }

    if (feed == null)
        return "";

    String externalId = feed.getId();
    Person person = feed.getAuthors().get(0);
    String email = person.getEmail();
    String name = person.getName();
    String nameLang = person.getNameLang();
    String extensionLocalName = person.getExtensionLocalName();
    String uri = person.getUri();



    System.out.println("externalId: " + externalId);
    System.out.println("email: " + email);
    System.out.println("name: " + name);
    System.out.println("nameLang: " + nameLang);
    System.out.println("extension local name: " + extensionLocalName);
    System.out.println("URI: " + uri);   
    System.out.println(feed.getSelf().getEntries().get(0).getTitle().getPlainText());   


    return CONST.STATUS_OK;
}

另外,

代码语言:javascript
复制
System.out.println("ID: "  + feed.getSelf().getEntries().get(0).getId());

将输出:

代码语言:javascript
复制
ID: http://www.google.com/m8/feeds/contacts/someEmail%40gmail.com/base/c....

但我想要这样的东西:

代码语言:javascript
复制
https://www.google.com/accounts/o8/id?id=AItOawmyn...

我需要这个插入到现有的数据库中。

请注意,我只需要帐户的信息,而不是它的联系人。

谢谢,

亚历克斯

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-04-06 15:51:39

请查看来自谷歌群组的此answer以获取解决方案。问题是,我不能访问从安卓的auth_token用户配置文件,因为它是一个客户端登录令牌,而客户端登录没有访问用户的配置文件的范围。我像this一样在安卓中集成了OAUTH登录,并返回了令牌,我可以访问用户的个人资料。

亚历克斯。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9872495

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档