【问题标题】:Provisioning Api using java使用 java 配置 API
【发布时间】:2011-02-22 05:44:24
【问题描述】:

您好,我正在使用 java 并试图检索域中的所有用户,因为我使用了 Provisionin api............它工作得很好但我的想法是使用 2-legged OAuth 从域中检索用户是否可能?我不知道如何指定网址请帮帮我我尝试了以下程序

    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/?xoauth_id=123@example.com");
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;
 }

将错误返回为 com.google.gdata.util.AuthenticationException: Unknown authentication header

【问题讨论】:

    标签: java oauth google-apps


    【解决方案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());
        }
    

    Google Apps API 的 2-Leged OAuth 的特殊之处在于它是无用户的。你不需要xoauth_id=123@xxx.com。管理员可以授权来自https://www.google.com/a/cpanel/<your domain>/ManageOauthClients的客户端

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-11-15
      • 2018-10-03
      • 2021-03-22
      • 2012-11-11
      • 1970-01-01
      相关资源
      最近更新 更多