Appengine 柔性环境是否支持 AbstractAppEngineAuthorizationCodeServlet?
Is AbstractAppEngineAuthorizationCodeServlet supported on Appengine Flexible Environment?
我想知道 AppEngine 柔性环境是否支持来自 com.google.api-客户端的 AbstractAppEngineAuthorizationCodeCallbackServlet。
我正在努力从已弃用的环境 (vm:true) 迁移到最新版本的灵活环境 (env:flex)。
当访问我的一个从 AbstractAppEngineAuthorizationCodeServlet 扩展的 servlet 时,流程完美运行并且重定向完成到其他 servlet,它从 AbstractAppEngineAuthorizationCodeCallbackServlet 扩展。现在,当它尝试 运行:
TokenResponse response = flow.newTokenRequest(code).setRedirectUri(redirectUri).execute();
(来自 AbstractAuthorizationCodeCallbackServlet 的 doGet 内的行 class)
它返回一个:
com.google.apphosting.api.ApiProxy$CallNotFoundException: Can't make API call urlfetch.Fetch in a thread that is neither the original request thread nor a thread created by ThreadManager
更新
我可以在 Cloud Console 上检查我的实例确实 运行ning on Flexible。
我刚刚发现 lib 使用有什么问题
在创建 GoogleAuthorizationCodeFlow 对象时,我传递了一个 GoogleClientSecrets:
Builder(HttpTransport transport, JsonFactory jsonFactory, GoogleClientSecrets clientSecrets, Collection<String> scopes)
出于某种原因,将 id 和 secret 作为字符串传递(使用 Builder 的其他构造函数),它有效。
GoogleAuthorizationCodeFlow.Builder(HttpTransport, JsonFactory, String, String, Collection<String> scopes)
虽然不确定原因。
------------------------------------编辑------ --------------------------
我刚刚在这里看到,除了不使用 GoogleClientSecrets 对象之外,我还做了另一个更改。
private static final HttpTransport HTTP_TRANSPORT = new NetHttpTransport();
private static final UrlFetchTransport HTTP_TRANSPORT = new UrlFetchTransport();
使用 UrlFetchTransport 而不是 NetHttpTransport 是显示堆栈跟踪的真正原因。
我想知道 AppEngine 柔性环境是否支持来自 com.google.api-客户端的 AbstractAppEngineAuthorizationCodeCallbackServlet。
我正在努力从已弃用的环境 (vm:true) 迁移到最新版本的灵活环境 (env:flex)。
当访问我的一个从 AbstractAppEngineAuthorizationCodeServlet 扩展的 servlet 时,流程完美运行并且重定向完成到其他 servlet,它从 AbstractAppEngineAuthorizationCodeCallbackServlet 扩展。现在,当它尝试 运行:
TokenResponse response = flow.newTokenRequest(code).setRedirectUri(redirectUri).execute();
(来自 AbstractAuthorizationCodeCallbackServlet 的 doGet 内的行 class)
它返回一个:
com.google.apphosting.api.ApiProxy$CallNotFoundException: Can't make API call urlfetch.Fetch in a thread that is neither the original request thread nor a thread created by ThreadManager
更新
我可以在 Cloud Console 上检查我的实例确实 运行ning on Flexible。
我刚刚发现 lib 使用有什么问题
在创建 GoogleAuthorizationCodeFlow 对象时,我传递了一个 GoogleClientSecrets:
Builder(HttpTransport transport, JsonFactory jsonFactory, GoogleClientSecrets clientSecrets, Collection<String> scopes)
出于某种原因,将 id 和 secret 作为字符串传递(使用 Builder 的其他构造函数),它有效。
GoogleAuthorizationCodeFlow.Builder(HttpTransport, JsonFactory, String, String, Collection<String> scopes)
虽然不确定原因。
------------------------------------编辑------ --------------------------
我刚刚在这里看到,除了不使用 GoogleClientSecrets 对象之外,我还做了另一个更改。
private static final HttpTransport HTTP_TRANSPORT = new NetHttpTransport();
private static final UrlFetchTransport HTTP_TRANSPORT = new UrlFetchTransport();
使用 UrlFetchTransport 而不是 NetHttpTransport 是显示堆栈跟踪的真正原因。