Сложность аутентификации iOS в хранилище Google с использованием GTMOAuth2

Я работал над этим более суток, поэтому теперь прошу помощи! Я пытаюсь написать приложение для iOS, которое аутентифицируется с помощью учетной записи службы Google для доступа к хранилищу Google.

Я не могу выйти за пределы этой ошибки, которая возникает в authoriseRequest и при попытке создать корзину.

Ошибка Domain=com.google.GTMOAuth2 Code=-1001 "Операция не может быть завершена. (Com.google.GTMOAuth2 error -1001.)" UserInfo = 0x15640740 {request = {URL: https://www.googleapis.com/rpc?prettyPrint=false }}

Я впервые работаю с библиотеками google target c и почти всеми примерами, которые я нашел в Интернете, и в stackOverflow нацелены на использование GTMOAuth2ViewControllerTouch, но я не проверяю подлинность от пользователя

До сих пор я получил это.

До моей инициации..

static GTLServiceStorage *storageService = nil;
static GTMOAuth2Authentication *auth;

В моей инициативе..

auth = [ GTMOAuth2SignIn standardGoogleAuthenticationForScope:@"kGTLAuthScopeStorageDevstorageFullControl" clientID:@"my_client_id.apps.googleusercontent.com" clientSecret:@"my_client_secret"];
auth.redirectURI = @"urn:ietf:wg:oauth:2.0:oob";
// inititialising the auth token
[auth authorizeRequest:nil  delegate:self didFinishSelector:@selector(authentication:request:finishedWithError:)];

// init googleStorage Backend service.
if (!storageService) {
    storageService = [[GTLServiceStorage alloc] init];
    storageService.additionalHTTPHeaders = @{@"x-goog-project-id": @"my_project_id", @"Content-Type": @"application/json-rpc", @"Accept":
                                                 @"application/json-rpc"};
    storageService.authorizer = auth;
    storageService.retryEnabled = YES;
}

А в способе создать ведро например..

// Create a GTLStorageBucket.
GTLStorageBucket* bucket = [[GTLStorageBucket alloc] init];
bucket.name = @"myBucketName";
// Create the query
GTLQueryStorage *query = [GTLQueryStorage queryForBucketsInsertWithObject:bucket project:@"myGoogleProjectID"];
[storageService executeQuery:query completionHandler:^(GTLServiceTicket *ticket, GTLStorageBucket  *object, NSError *error) {
    NSLog(@"bucket %@", object);
}];

У меня вопрос, правильно ли я использую библиотеку gtmoauth2 для аутентификации учетной записи службы, и если да, то я упускаю что-то очевидное в моих параметрах или моей инициализации.

Спасибо

2 ответа

Проблема может быть в том, что kGTLAuthScopeStorageDevstorageFullControl является константой, и, поместив его внутри @"", вы создаете строку NSString, которая в буквальном смысле "kGTLAuthScopeStorageDevstorageFullControl", которая не эквивалентна значению константы, которое метод, вероятно, ожидает.

К сожалению, согласно группе обсуждения, в библиотеке Objective C Google API нет поддержки учетных записей служб, поскольку библиотека Objective C предназначена только для создания клиентских приложений:

https://groups.google.com/forum/

Другие вопросы по тегам