Azure移动客户端4.0-如何使用LoginAsync?

Azure移动客户端4.0-如何使用LoginAsync?,azure,xamarin,mobile,xamarin.android,azure-mobile-services,Azure,Xamarin,Mobile,Xamarin.android,Azure Mobile Services,我使用了azure mobile net客户端3.1.0.0。这是我在Android客户端中的旧代码: IMobileServiceClient client; //for Android //from Microsoft.WindowsAzure.Mobile.Ext var user = await client.LoginAsync(Forms.Context, provider); 现在我已经更新到新版本4.0。我需要谷歌账户的授权。这是我在文档中找到的代码: IMobile

我使用了azure mobile net客户端3.1.0.0。这是我在Android客户端中的旧代码:

 IMobileServiceClient client;
 //for Android
 //from Microsoft.WindowsAzure.Mobile.Ext
 var user = await client.LoginAsync(Forms.Context, provider);
现在我已经更新到新版本4.0。我需要谷歌账户的授权。这是我在文档中找到的代码:

 IMobileServiceClient client;
 var token = new JObject {{"access_token", "access_token_value"}};
 user = await client.LoginAsync(provider, token);
如何在客户端Android上获取“访问令牌值”?
请帮帮我。我需要一个小示例或文档参考。

根据您的描述,我创建了Xamarin.Android应用程序来测试这个问题。对于Microsoft.Azure.Mobile.Client 4.0.0,我发现我的项目将在以下路径下引用sdk:

Microsoft.Azure.Mobile.Client.4.0.0\lib\netstandard1.4\Microsoft.Azure.Mobile.Client.dll

我会遇到与你提到的相同的问题。然后我尝试降级到,我可以找到
LoginAsync
的预期扩展方法。此时,sdk将位于以下路径下:

Microsoft.Azure.Mobile.Client.4.0.0-alpha-001\lib\monoandroid44\Microsoft.Azure.Mobile.Client.dll

此外,对于Azure Mobile Client SDK 3.1.0,参考路径如下所示:

Microsoft.Azure.Mobile.Client.3.1.0\lib\monoadroid\Microsoft.WindowsAzure.Mobile.Ext.dll

经过一些试验,我发现以下sdk支持
LoginAsync
的扩展方法,如下所示:

C:\Bruce\Thread Handling Projects\Bruce.AndroidApp\packages\Microsoft.Azure.Mobile.Client.4.0.0\lib\monoandroid71

如何在客户端Android上获取“访问令牌值”?请帮帮我。我需要一个小例子或参考文件

根据您的旧代码,我假设您正在使用服务器流身份验证,对于通过Microsoft.Azure.Mobile.Client 4.0.0使用服务器流,它支持
MonoAndroid>=7.1
,我假设您需要升级您的xamarin.android项目的安卓版本。或者您需要降级到4.0.0之前的版本。此外,您可以参考和

更新:

将android版本更改为7.1后,我可以使用Microsoft.Azure.Mobile.Client 4.0.0,如下所示:


要升级到android 7.1,您可以参考。

根据您的描述,我创建了我的Xamarin.android应用程序来测试这个问题。对于Microsoft.Azure.Mobile.Client 4.0.0,我发现我的项目将在以下路径下引用sdk:

Microsoft.Azure.Mobile.Client.4.0.0\lib\netstandard1.4\Microsoft.Azure.Mobile.Client.dll

我会遇到与你提到的相同的问题。然后我尝试降级到,我可以找到
LoginAsync
的预期扩展方法。此时,sdk将位于以下路径下:

Microsoft.Azure.Mobile.Client.4.0.0-alpha-001\lib\monoandroid44\Microsoft.Azure.Mobile.Client.dll

此外,对于Azure Mobile Client SDK 3.1.0,参考路径如下所示:

Microsoft.Azure.Mobile.Client.3.1.0\lib\monoadroid\Microsoft.WindowsAzure.Mobile.Ext.dll

经过一些试验,我发现以下sdk支持
LoginAsync
的扩展方法,如下所示:

C:\Bruce\Thread Handling Projects\Bruce.AndroidApp\packages\Microsoft.Azure.Mobile.Client.4.0.0\lib\monoandroid71

如何在客户端Android上获取“访问令牌值”?请帮帮我。我需要一个小例子或参考文件

根据您的旧代码,我假设您正在使用服务器流身份验证,对于通过Microsoft.Azure.Mobile.Client 4.0.0使用服务器流,它支持
MonoAndroid>=7.1
,我假设您需要升级您的xamarin.android项目的安卓版本。或者您需要降级到4.0.0之前的版本。此外,您可以参考和

更新:

将android版本更改为7.1后,我可以使用Microsoft.Azure.Mobile.Client 4.0.0,如下所示:

要升级到android 7.1,您可以参考。

我解决了这个问题。 1.有必要使用该类:

Microsoft.WindowsAzure.MobileServices.MobileServiceClient client;
var user = await client.LoginAsync(Forms.Context, provider, "{url_scheme_of_your_app}");
2.有必要将其添加到AndroidManifest.xml中:

<activity android:name="com.microsoft.windowsazure.mobileservices.authentication.RedirectUrlActivity"
      android:launchMode="singleTop" android:noHistory="true">
<intent-filter>
    <action android:name="android.intent.action.VIEW" />
    <category android:name="android.intent.category.DEFAULT" />
    <category android:name="android.intent.category.BROWSABLE" />
    <data android:scheme="{url_scheme_of_your_app}" android:host="easyauth.callback" />
</intent-filter>

例如url app911://easyauth.callback

这是。

我解决了这个问题。 1.有必要使用该类:

Microsoft.WindowsAzure.MobileServices.MobileServiceClient client;
var user = await client.LoginAsync(Forms.Context, provider, "{url_scheme_of_your_app}");
2.有必要将其添加到AndroidManifest.xml中:

<activity android:name="com.microsoft.windowsazure.mobileservices.authentication.RedirectUrlActivity"
      android:launchMode="singleTop" android:noHistory="true">
<intent-filter>
    <action android:name="android.intent.action.VIEW" />
    <category android:name="android.intent.category.DEFAULT" />
    <category android:name="android.intent.category.BROWSABLE" />
    <data android:scheme="{url_scheme_of_your_app}" android:host="easyauth.callback" />
</intent-filter>

例如url app911://easyauth.callback


这是。

您一直在使用什么“流”?服务器流(出现一个浏览器窗口,您的服务器直接获取访问令牌并将其返回给您)或客户端流(facebook应用程序可能会打开,您可以在本地获取令牌并将其发送到您的服务器?(如果旧azure sdk中不存在,您希望使用哪一个?)您一直在使用什么“流”?服务器流(出现一个浏览器窗口,您的服务器直接获取访问令牌并将其返回给您)或客户端流(facebook应用程序可能会打开,您在本地获取令牌并将其发送到您的服务器)(如果旧azure sdk中不存在该流,您希望使用哪一个?)我已经更新了我的测试答案,你们可以参考它。我已经更新了我的测试答案,你们可以参考它。