Question: Most of the Google Management APIs seem to have been enabled for Service Accounts. For example, I can retrieve calendars like so:

```
string scope = Google.Apis.Calendar.v3.CalendarService.Scopes.Calendar.ToString().ToLower();
string scope_url = "https://www.googleapis.com/auth/" + scope;
string client_id = "999...@developer.gserviceaccount.com";
string key_file = @"\path\to\my-privatekey.p12";
string key_pass = "notasecret";

AuthorizationServerDescription desc = GoogleAuthenticationServer.Description;
X509Certificate2 key = new X509Certificate2(key_file, key_pass, X509KeyStorageFlags.Exportable);

AssertionFlowClient client = new AssertionFlowClient(desc, key) { ServiceAccountId = client_id, Scope = scope_url };
OAuth2Authenticator<AssertionFlowClient> auth = new OAuth2Authenticator<AssertionFlowClient>(client, AssertionFlowClient.GetState);

CalendarService service = new CalendarService(auth);
var x = service.Calendars.Get("calendarID@mydomain.com").Fetch();

```

However, identical code on the GroupssettingsService returns a 503 - Server Not Available. Does that mean service accounts can't be used with that API?

In a possibly related issue, the scope of the Groups Settings Service seems to be `apps.groups.settings` but if you call

```
GroupssettingsService.Scopes.AppsGroupsSettings.ToString().ToLower();

```

...you get `appsgroupssettings` instead, without the embedded periods.

Is there another method to use service accounts for the GroupssettingsService? Or any information on the correct scope string?

Many thanks.

Answer: 
This is a block pointer. If you are unfamiliar with blocks, this basically lets you assign an annonymous function inline as a parameter. The signature here says that the block takes an NSString as a parameter, and returns nothing. You would use it like this:

```
- (void)login:(NSString *)username password:(NSString *)password delegate:(void(^)(NSString *))delegate;

[someReceiver login:yourUsername password:yourPassword delegate:^(NSString *aString)
{
     // This is the block (annonymous function).  Do something with the aString paramter
}];

```
It denotes a [block](http://developer.apple.com/library/ios/#documentation/cocoa/Conceptual/Blocks/Articles/00_Introduction.html) - it's essentially a closure (lambda function, whatever you call it) - Apple's addition to the C language. In this case, it returns `void` and accepts an `NSString` object as its only argument.