2010-05-21 11 views
3

Salut, je travaille en Java et j'ai essayé de récupérer tous les utilisateurs dans le domaine pour ce que j'ai utilisé Provisionin api ............ Son bon fonctionnement Mais mon idée est de Utiliser OAuth à 2 pattes pour récupérer les utilisateurs du domaine Est-ce possible? Je ne sais pas comment spécifier l'URL Aidez-moi s'il vous plaît et j'ai essayé ce qui suit le programmeProvisioning Api en utilisant java

final String CONSUMER_KEY = "example.com"; 
    final String CONSUMER_SECRET = "12345678122154154df9"; 
    final String DOMAIN = "example.com"; 
    GoogleOAuthParameters oauthParameters = new GoogleOAuthParameters(); 
    oauthParameters.setOAuthConsumerKey(CONSUMER_KEY); 
    oauthParameters.setOAuthConsumerSecret(CONSUMER_SECRET); 
    oauthParameters.setOAuthType(OAuthType.TWO_LEGGED_OAUTH); 
    OAuthHmacSha1Signer signer = new OAuthHmacSha1Signer(); 
    URL feedUrl = new URL("https://apps-apis.google.com/a/feeds/" + DOMAIN + 
     "/user/2.0/[email protected]"); 
userService = new UserService("Myapplication"); 
    userService.setOAuthCredentials(oauthParameters, signer); 
    userService.useSsl(); 
    UserFeed allUsers = new UserFeed(); 
     UserFeed allpage; 
     Link nextLink; 


do { 
    allpage = userService.getFeed(feedUrl, UserFeed.class); 

    allUsers.getEntries().addAll(allpage.getEntries()); 

    nextLink = allpage.getLink(Link.Rel.NEXT, Link.Type.ATOM); 
    if (nextLink != null) { 
    feedUrl = new URL(nextLink.getHref()); 
    } 

}while (nextLink != null); 
return allUsers; 
} 

Son returing l'erreur comme com.google.gdata.util.AuthenticationException: tête d'autorisation inconnue

Répondre

1
// use real values. 
    final String CONSUMER_KEY = "example.com"; 
    final String CONSUMER_SECRET = "secret-here"; 
    final String DOMAIN = "domain.com"; 

    GoogleOAuthParameters oauthParameters = new GoogleOAuthParameters(); 
    oauthParameters.setOAuthConsumerKey(CONSUMER_KEY); 
    oauthParameters.setOAuthConsumerSecret(CONSUMER_SECRET); 
    oauthParameters.setOAuthType(OAuthType.TWO_LEGGED_OAUTH); 
    OAuthHmacSha1Signer signer = new OAuthHmacSha1Signer(); 

    URL feedUrl = new URL("https://apps-apis.google.com/a/feeds/" + DOMAIN + "/user/2.0"); 

    UserService service = new UserService("ProvisiongApiClient"); 
    service.setOAuthCredentials(oauthParameters, signer); 
    service.useSsl(); 
    UserFeed resultFeed = service.getFeed(feedUrl, UserFeed.class); 

    for (UserEntry entry : resultFeed.getEntries()) { 
     System.out.println(entry.getTitle().getPlainText()); 
    } 

OAuth à 2 pattes pour les API Google Apps est spécial en ce sens qu'il est sans utilisateur. Vous n'avez pas besoin de [email protected]. Un administrateur peut autoriser les clients à partir de https://www.google.com/a/cpanel/<your domain>/ManageOauthClients