Android应用中的Google Cloud Endpoints Auth Exception

时间:2014-06-15 16:54:19

标签: android google-app-engine oauth-2.0

在我的Android应用程序中,我遇到使用Google Cloud Endpoints对Google AppEngine应用程序进行身份验证调用的问题。

这是我的端点方法:

    @ApiMethod(name = "compute", clientIds = { Ids.WEB_CLIENT_ID,
        Ids.ANDROID_CLIENT_ID, API_EXPLORER_CLIENT_ID }, 
        audiences = { Ids.WEB_CLIENT_ID }, 
        scopes = { "https://www.googleapis.com/auth/userinfo.email" })
public Response compute(Request req, User user) {
    if (user == null) {
        return new Response("HELLO, " + req.getMessage());
    } else {
        return new Response("HELLO, " + user.getEmail());
    }
}

初始化GoogleAccountCredential:

        mCredential = GoogleAccountCredential.usingAudience(this,
            "server:client_id:" + WEB_CLIENT_ID);       
    mCredential.setSelectedAccountName(mAndroidUtils.getAccountName(this));

对我的终端进行异步调用:

    @Override
    protected Response doInBackground(Void... params) {
        try {
            Myendpoint.Builder builder = new Myendpoint.Builder(
                    AndroidHttp.newCompatibleTransport(),
                    new JacksonFactory(), mCredential);
            Myendpoint anEndpoint = CloudEndpointUtils.updateBuilder(
                    builder).build();

            Request r = new Request();
            r.setMessage("World!");
            return anEndpoint.compute(r).execute();
        } catch (IOException e) {
            e.printStackTrace();
            Respone = new Respone ();
            r.setValue("EXCEPTION");
            return r;
        }
    }

我已将我的项目部署到App引擎。 在Api资源管理器中,一切都运行良好,但当我在我的Android设备上运行时,我得到了异常:GoogleAuthException:com.google.android.gms.auth.GoogleAuthException:Unknown。

我已经在Stackoverflow中阅读了几乎所有关于App引擎和Google Cloud Endpoints的内容。最常见的错误是在创建ANDROID_CLIENT_ID期间使用ANDROID_CLIENT_ID而不是WEB_CLIENT_ID或指定错误的SHA1指纹。我已多次检查所有ID,但它不起作用。请帮忙。

0 个答案:

没有答案