マイコード: GoogleCredential資格例外:401 Unauthorized Error | com.google.api.client.auth.oauth2.TokenResponseException:401権限
try {
// Authorize the request.
credential = new GoogleCredential.Builder()
.setTransport(HTTP_TRANSPORT)
.setJsonFactory(JSON_FACTORY)
.setServiceAccountId(serviceAccId)
.setServiceAccountPrivateKeyFromP12File(certFilePath)
.setServiceAccountScopes(Lists.newArrayList(YouTubeScopes.YOUTUBE))
.setServiceAccountUser(emailId)
.build();
credential.refreshToken()
エラーログ:
Error |
Exception: 401 Unauthorized
Error |
com.google.api.client.auth.oauth2.TokenResponseException: 401 Unauthorized
Error |
at com.google.api.client.auth.oauth2.TokenResponseException.from(TokenResponseException.java:105)
Error |
at com.google.api.client.auth.oauth2.TokenRequest.executeUnparsed(TokenRequest.java:287)
Error |
at com.google.api.client.auth.oauth2.TokenRequest.execute(TokenRequest.java:307)
Error |
at com.google.api.client.googleapis.auth.oauth2.GoogleCredential.executeRefreshToken(GoogleCredential.java:384)
Error |
at com.google.api.client.auth.oauth2.Credential.refreshToken(Credential.java:489)
Error |
at com.google.api.client.auth.oauth2.Credential$refreshToken.call(Unknown Source)
Error |
at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:45)
Error |
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:108)
Error |
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:112)
Error |
at viewlift.YouTubePublishService.authorizeCredentials(YouTubePublishService.groovy:82)
Error |
at viewlift.YouTubePublishService$$FastClassBySpringCGLIB$$48c3206b.invoke(<generated>)
Error |
at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:204)
Error |
at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:708)
Error |
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:157)
Error |
at org.springframework.transaction.interceptor.TransactionInterceptor$1.proceedWithInvocation(TransactionInterceptor.java:98)
Error |
at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:262)
Error |
at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:95)
Error |
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179)
Error |
at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:644)
Error |
at viewlift.YouTubePublishService$$EnhancerBySpringCGLIB$$6e11774.authorizeCredentials(<generated>)
Error |
at viewlift.YouTubePublishService$authorizeCredentials.call(Unknown Source)
Error |
at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:45)
Error |
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:108)
Error |
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:124)
Error |
at com.viewlift.ViewLiftUtilsService.createSocialAccount(ViewLiftUtilsService.groovy:128)
Error |
at com.viewlift.ViewLiftUtilsService$$FastClassBySpringCGLIB$$53f6d4a5.invoke(<generated>)
Error |
at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:204)
Error |
at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:708)
Error |
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:157)
Error |
at org.springframework.transaction.interceptor.TransactionInterceptor$1.proceedWithInvocation(TransactionInterceptor.java:98)
Error |
at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:262)
Error |
at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:95)
Error |
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179)
Error |
at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:644)
サービスアカウントの作成手順は次のとおりです。
- oauth 2.0でWebアプリケーションを作成しました。
- クライアントIDを取得してサービスアカウントを作成しました。
- このサービスアカウントとp12証明書を使用して認証し、オブジェクトを作成しました。 GoogleCredentials
- リフレッシュトークンを取得するとすぐに、私に401例外が与えられました。
すべてのヘルプは、YouTubeのAPIは、サービスアカウントの認証をサポートしていません。この場合には
現在、私が設定したサービスアカウントはYouTubeアカウントにのみアクセスしています。私はあなたの答えに同意しない。そのちょうど私は同じ方法で別のアカウントを設定することができません。私の以前のアカウントは私にビデオを持ち込み、その上で操作を行うことができます。しかし、この新しいアカウントは正しく設定されていません。私はOAUTH 2.0だけを使用しています。上記の手順はOAUTH 2.0です。 – Anik
私の見積もりは、Googleのドキュメントから直接得られます。 「YouTube Data APIではこのフローはサポートされていません。サービスアカウントをYouTubeアカウントにリンクする方法はないため」私は、あなたが支持されていないものとして文書化されている何かをすることに幸運を祈っています。 – DaImTo
setServiceAccountPrivateKeyFromP12File(certFilePath)< - サービスアカウント – DaImTo