2012-03-26 69 views
1

我想要使用gdata庫獲取谷歌帳戶的名和姓。我有auth令牌(我從android設備獲取 - 將其發送到我的java servlet - 然後應該添加一個插入到MySQL數據庫與第一,最後,顯示名稱和provider_uid(provider_uid是https://www.google.com/accounts/o8/id?id=AItOawmyn ...的形式)) 。gData:獲取帳戶(自我聯繫)名和姓

我使用聯繫人供稿像這樣(沒有成功):

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/" + "[email protected]" + "/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; 
} 

此外,

System.out.println("ID: " + feed.getSelf().getEntries().get(0).getId()); 

將輸出:

ID: http://www.google.com/m8/feeds/contacts/someEmail%40gmail.com/base/c.... 

,但我想是這樣的:

https://www.google.com/accounts/o8/id?id=AItOawmyn... 

我需要這個插入到現有的數據庫。

請注意,我只想要該帳戶的信息,而不是它的聯繫人。

感謝,

亞歷

+0

還沒有人知道如何獲得姓氏和名字? – 2012-03-28 05:15:52

回答

0

請參閱本answer從谷歌組進行解析。問題是我無法訪問用戶配置文件,因爲它是一個客戶端登錄令牌,並且客戶端登錄沒有訪問用戶配置文件的範圍。我在Android中集成了OAuth登錄功能,如this和返回的令牌,我可以訪問用戶的個人資料。

Alex。