无法在Android应用中使用谷歌Oauth与Azure移动服务

时间:2014-11-06 10:22:39

标签: android azure azure-mobile-services

我正在尝试使用azure移动服务及其身份验证提供程序为Android应用程序添加身份验证。我正在使用移动服务1.1.5 jar和我的android项目目标API 19。

  

方法登录(MobileServiceAuthenticationProvider,JsonObject,   UserAuthenticationCallback)对于类型是不明确的   MobileServiceClient

这是我的代码

private void authenticate() { // Login using the Google provider.

    ListenableFuture<MobileServiceUser> mLogin = mClient.login(null, null, null);

    Futures.addCallback(mLogin, new FutureCallback<MobileServiceUser>() {
        @Override
        public void onFailure(Throwable exc) {
            createAndShowDialog((Exception) exc, "Error");
        }           
        @Override
        public void onSuccess(MobileServiceUser user) {
            createAndShowDialog(String.format(
                    "You are now logged in - %1$2s",
                    user.getUserId()), "Success");
            createTable();  
        }
    });     

    }

1 个答案:

答案 0 :(得分:1)

SDK 1.1.5中没有ListenableFuture重载。您将需要2.0.1 beta版SDK。 Azure team blog上提供了概述和下载此版本的链接。

此外,login()的新重载不带三个参数。您需要传入提供程序,该提供程序可以是字符串或MobileServiceAuthenticationProvider对象。或者,您也可以传递一个标记,它可以是字符串或JsonObject。

如果您的目标是使用Google身份验证,我希望您拨打以下电话:

ListenableFuture<MobileServiceUser> mLogin = mClient.login("google");

如果它有用,则source for the beta SDK可用。

或者,您可以继续使用1.1.5 SDK,但如果您希望对结果采取措施,则可能需要提供UserAuthenticationCallback对象。这将是login()的另一个可选参数。