2012-03-26 1 views
1

gdataライブラリを使用してGoogleアカウントの名字を取得したいと考えています。私は認証トークンを持っている(私はアンドロイドデバイスからそれを取る - 私のJavaサーブレットに送信し、最初に、最後に、表示名とprovider_uid(provider_uidは、https://www.google.com/accounts/o8/id?id=AItOawmyn ...の形式です) 。gData:アカウントを取得する(自己連絡)姓と名

私はコンタクト(成功せずに)このようにフィードを使用:

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

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; 
} 

また意志出力:

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

が、私はこのような何かしたい:

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

私はこれを既存のデータベースに挿入する必要があります。

私はそのアカウントの情報のみを希望します。連絡先の情報ではありません。

おかげで、

アレックス

+0

まだ誰も姓と名義を知りません。 –

答えて

0

は、解決のために、Googleのグループからこのanswerを参照してください。問題は、クライアントログイントークンであり、クライアントログインにユーザーのプロファイルにアクセスするスコープがないため、アンドロイドから取得したauth_tokenでユーザープロファイルにアクセスできないことです。私はthisのようなアンドロイドでOAUTHログインを統合し、返されたトークンで、私はユーザーのプロフィールにアクセスすることができます。

アレックス。

関連する問題