Hi David,

Thanks for reaching out about this.  This looks like something that we'd 
like to investigate in detail with you - can you please file a ticket with 
our Enterprise Support team?  My colleagues and I will be happy to work 
with you on this.  We're currently aware of a relatively rare issue with 
this API that sounds similar to what you're experiencing, and we'll be able 
to help you through this in the 1:1 channel.

Cheers,
Stafford

On Friday, March 30, 2012 6:45:38 AM UTC-7, David Hardwick wrote:
>
> Hello, 
>
> I really need help on this Group Settings issue.  We've provided a 
> unit test and responses, but if there is anything else we can provide 
> then please let us know and we'll do it straight away. 
>
> Regards, 
>   David 
>
> On Mar 28, 9:28 pm, David Hardwick <[email protected]> 
> wrote: 
> > Hello, 
> > 
> > We have Group Setting enabled for a Group Settings project that is 
> > servicing multiple domains.  Out of our four test domains, three are 
> > working but for one domain it is not (of course, wouldn't you know it, 
> the 
> > domain it is not working for is our test domain we use for automated 
> > testing!) 
> > 
> > However, we have additional concerns since this could happen for other 
> > domains, and so far we only have a 75% success rate. 
> > 
> > Below is an example a unit test for bc.com and testc8l.com (NOTE, not 
> the 
> > real domains, the real domains were elided to protect the innocent!). 
>  The 
> > request and response is included as comments within the unit tests. 
> > 
> > As described earlier, these two domains, having tokens of exactly the 
> same 
> > scope, respond entirely differently for no apparent reason.  bc.comallows 
> > group settings access and testc8l.com throws a 401. 
> > 
> > HELP! 
> > 
> > public class GroupSettingsTest { 
> > private String goodAdminEmail = "[email protected]"; 
> >  private String goodToken = Constants.GOOD_TOKEN; 
> > private String goodRefreshToken = Constants.GOOD_REFRESH_TOKEN; 
> >  private String goodDomain = "bc.com"; 
> > private String goodGroupId = "[email protected]"; 
> >  private String badAdminEmail = "[email protected]"; 
> >  private String badToken = Constants.BAD_TOKEN; 
> > private String badRefreshToken = Constants.BAD_REFRESH_TOKEN; 
> >  private String badDomain = "testc8l.com"; 
> > private String badGroupId = "[email protected]"; 
> >  private LocalServiceTestHelper helper; 
> >  private OAuth2Service oAuth2Service; 
> > private GroupsService groupsService; 
> >  @Before 
> > public void setUp() throws Exception{ 
> >  helper = new LocalServiceTestHelper(new 
> LocalURLFetchServiceTestConfig()); 
> > helper.setUp(); 
> >  Injector inj = Guice.createInjector(new GuiceGoogleServicesModule(), 
> new 
> > GuiceModule(),new MockFPGuiceSessionModule()); 
> > oAuth2Service = inj.getInstance(OAuth2Service.class); 
> >  groupsService = inj.getInstance(GroupsService.class); 
> >  // refresh both tokens.  both tokens have the same scope and 
> provisioning 
> > api is enabled for both 
> >  goodToken = oAuth2Service.refreshAccessToken("localhost", goodToken, 
> > goodRefreshToken); 
> > badToken = oAuth2Service.refreshAccessToken("localhost", badToken, 
> > badRefreshToken); 
> >  // capture http request and respsonse 
> > Logger logger = Logger.getLogger("com.google.api.client"); 
> >  logger.setLevel(Level.FINER); 
> > logger.addHandler(new Handler() { 
> > 
> >  @Override 
> > public void close() throws SecurityException { 
> > 
> > } 
> > 
> > @Override 
> > public void flush() { 
> > 
> > } 
> > 
> > @Override 
> > public void publish(LogRecord record) { 
> > if (record.getLevel().intValue() < Level.INFO.intValue()) { 
> >  System.out.println(record.getMessage());} 
> > } 
> > 
> >  }); 
> >  } 
> >  @Test 
> > public void testGoodDomainCanRetrieveSettings() throws Exception{ 
> >  GroupsSettingsEntry entry = 
> > 
> groupsService.getGroupSettingsEntry(GroupsSettingsUrl.forGetGroupSettingsEn 
> try(goodGroupId), 
> > goodToken, goodAdminEmail); 
> >  Assert.assertNotNull(entry); 
> > Assert.assertEquals(goodGroupId,entry.getEmail()); 
> >  /* 
> > -------------- REQUEST  -------------- 
> >  GET https://www.googleapis.com/groups/v1/[email protected]?alt=json 
> >  Accept-Encoding: gzip 
> > Authorization: <Not Logged> 
> > GData-Version: v1 
> >  User-Agent: fp Google-HTTP-Java-Client/1.6.0-beta (gzip) 
> >  -------------- RESPONSE -------------- 
> >  200 
> > Expires: Wed, 28 Mar 2012 14:31:58 GMT 
> > Date: Wed, 28 Mar 2012 14:31:58 GMT 
> >  Cache-Control: private, max-age=0, must-revalidate, no-transform 
> > ETag: "j4AmYRiK3XvwemHZQtB25t0i4Ak/YGWPqVp-Way1XMXRRKm5jpaiHk4" 
> >  Content-Type: application/json; charset=UTF-8 
> > Content-Encoding: gzip 
> > X-Content-Type-Options: nosniff 
> >  X-Frame-Options: SAMEORIGIN 
> > X-XSS-Protection: 1; mode=block 
> > Content-Length: 454 
> >  Server: GSE 
> >  Response size: 454 bytes 
> >  { 
> >  "kind": "groupsSettings#groups", 
> >  "email": "[email protected]", 
> >  "name": "fp", 
> >  "description": "fp support and development team", 
> >  "whoCanJoin": "CAN_REQUEST_TO_JOIN", 
> >  "whoCanViewMembership": "ALL_MEMBERS_CAN_VIEW", 
> >  "whoCanViewGroup": "ALL_MEMBERS_CAN_VIEW", 
> >  "whoCanInvite": "ALL_MANAGERS_CAN_INVITE", 
> >  "allowExternalMembers": "false", 
> >  "whoCanPostMessage": "ANYONE_CAN_POST", 
> >  "allowWebPosting": "true", 
> >  "maxMessageBytes": 5242880, 
> >  "isArchived": "true", 
> >  "archiveOnly": "false", 
> >  "messageModerationLevel": "MODERATE_NONE", 
> >  "replyTo": "REPLY_TO_IGNORE", 
> >  "customReplyTo": "", 
> >  "sendMessageDenyNotification": "false", 
> >  "defaultMessageDenyNotificationText": "", 
> >  "showInGroupDirectory": "false", 
> >  "allowGoogleCommunication": "false", 
> >  "membersCanPostAsTheGroup": "false", 
> >  "messageDisplayFont": "DEFAULT_FONT"} 
> > 
> >  */ 
> >  } 
> >  @Test 
> >  public void testBadDomainCanNotRetrieveSettings() throws Exception{ 
> > GroupsSettingsEntry entry = null; 
> >  boolean exceptionThrown = false; 
> > try{ 
> > entry = 
> > 
> groupsService.getGroupSettingsEntry(GroupsSettingsUrl.forGetGroupSettingsEn 
> try(badGroupId), 
> > badToken, badAdminEmail); 
> >  }catch(Exception e){ 
> > exceptionThrown = true;} 
> > 
> >  Assert.assertTrue(exceptionThrown); 
> > Assert.assertNull(entry); 
> > /* 
> >  -------------- REQUEST  -------------- 
> > GET 
> https://www.googleapis.com/groups/v1/groups/[email protected]?alt=json 
> >  Accept-Encoding: gzip 
> > Authorization: <Not Logged> 
> > GData-Version: v1 
> >  User-Agent: fp Google-HTTP-Java-Client/1.6.0-beta (gzip) 
> > 
> > -------------- RESPONSE -------------- 
> >  401 
> > WWW-Authenticate: AuthSub realm="
> https://www.google.com/accounts/AuthSubRequest"; allowed-scopes="
> https://www.googleapis.com/auth/apps.groups.settings"; 
> >  Content-Type: application/json; charset=UTF-8 
> > Content-Encoding: gzip 
> > Date: Wed, 28 Mar 2012 14:36:08 GMT 
> >  Expires: Wed, 28 Mar 2012 14:36:08 GMT 
> > Cache-Control: private, max-age=0 
> >  X-Content-Type-Options: nosniff 
> > X-Frame-Options: SAMEORIGIN 
> > X-XSS-Protection: 1; mode=block 
> >  Content-Length: 184 
> > Server: GSE 
> >  { 
> >  "error": { 
> >   "errors": [ 
> >    { 
> >     "domain": "global", 
> >     "reason": "authError", 
> >     "message": "Domain cannot use Api, Groups service is not 
> installed.", 
> >     "locationType": "header", 
> >     "location": "Authorization" 
> >    } 
> >   ], 
> >   "code": 401, 
> >   "message": "Domain cannot use Api, Groups service is not installed." 
> >  }} 
> > 
> >  */ 
> >  } 
> >  @After 
> >  public void tearDown(){ 
> > oAuth2Service = null; 
> > groupsService = null; 
> >  helper.tearDown(); 
> > 
> > 
> > 
> > 
> > 
> > 
> > 
> > } 
> > }

-- 
You received this message because you are subscribed to the Google Groups 
"Google Apps Domain Information and Management APIs" group.
To view this discussion on the web visit 
https://groups.google.com/d/msg/google-apps-mgmt-apis/-/bLFQcrngQqMJ.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/google-apps-mgmt-apis?hl=en.

Reply via email to