2017-05-08 37 views
1

iOSアプリケーションでGoogle SignInを使用して認証しています。これで私はGoogleドライブの使用可能なすべてのスコープを定義していますが、引き続き次のエラーが発生しています。 Googleドライブに別のファイルを作成しています。Googleドライブの権限が不十分です。iOS

[[GIDSignIn sharedInstance].scopes 
arrayByAddingObject:@[kGTLRAuthScopeDriveFile,kGTLRAuthScopeDrive, 
kGTLRAuthScopeDriveMetadata]]; 

GoogleドライブAPIはGoogleのコンソールで有効にされているが、私はこのエラーを取得していますなぜ、まだわからない。:

Domain=com.google.GTLRErrorObjectDomain Code=403 "Insufficient Permission" 
UserInfo={GTLRStructuredError=GTLRErrorObject 0x170450d10: {message:"Insufficient 
Permission" errors:[1] code:403}, NSLocalizedDescription=InsufficientPermission 

私はとしてGoogleサインインしてスコープを定義しています。私はまた、コンソール上でGoogleドライブサービスの "OAuth 2.0"をオンにしようとしましたが、Googleでは私を許可せず自動的にオフにしています。どんな助けもありがとう。

+1

ない問題が、あなたは指示しているもののような 'signIn'を呼んだ:/

- (GTMOAuth2ViewControllerTouch *)createAuthController { NSArray *scopes = [NSArray arrayWithObjects:kGTLRAuthScopeDriveFile, kGTLRAuthScopeDrive,nil]; authController = [[GTMOAuth2ViewControllerTouch alloc] initWithScope:[scopes componentsJoinedByString:@" "] clientID:kClientID clientSecret:nil keychainItemName:kGTMAppAuthKeychainItemName delegate:self finishedSelector:@selector(viewController:finishedWithAuth:error:)]; return authController; } 

新方法を修正/developers.google.com/identity/sign-in/ios/additional-scopes#requesting_additional_scopes)?ドライブからどのようなデータを取得していますか? –

+0

ありがとう、それは働いた。 – WasimSafdar

答えて

0

GoogleがAPIの認証ポリシーを変更しました。 OAuthフローのネイティブWebビューは許可されていませんが、ユーザーはOSブラウザを使用するようにプッシュされます。また、ユーザーがGoogleサービスを使用したい場合、ユーザーログインに使用されるGoogle SignInボタンSDKも導入されました。 Google SignInボタン(GIDSign)は、ユーザーの認証フローを処理します。ユーザーはAppAuthの要求を承認するために、更新された "GMTAppAuth"と "AppAuth"をGTMFetcherAuthorizationProtocolの実装に使用することもできます。私は自分のアプリケーションの1つでGoogleドライブAPIを使用していましたが、Google Sign Inと認証に「GTMOAuth2ViewControllerTouch」を使用していましたが、アップデート後に動作しなくなりました。私の上記の質問では、Google SignInを認証に使用しています。古いコードでは、認証NSString *定数 "GTLRAuthScopeDriveFile"を使用してスコープを定義することができますが、現在はそれらが変更されているため、エラーが発生しています。スコープを定義する

古い方法:[ここ](HTTPSおそらく

NSString *driveFile = @"https://www.googleapis.com/auth/drive.file"; 
[GIDSignIn sharedInstance].scopes = [currentScopes arrayByAddingObject:driveFile]; 
+0

このコードは質問に答えるかもしれませんが、このコードが質問に答える理由および/または方法に関する追加の文脈を提供することで、長期的な価値が向上します。 –

+0

あなたのための詳細を@Donald Duckに追加しました – WasimSafdar

関連する問題