我使用了azure mobile net client 3.1.0.0。这是我在Android客户端中的旧代码:
IMobileServiceClient client;
//for Android
//from Microsoft.WindowsAzure.Mobile.Ext
var user = await client.LoginAsync(Forms.Context, provider);
现在我已更新到新版本4.0。我需要使用Google帐户授权。这是我在文档中找到的代码:
IMobileServiceClient client;
var token = new JObject {{"access_token", "access_token_value"}};
user = await client.LoginAsync(provider, token);
如何在客户端Android上获得“access_token_value”? 请帮我。我需要一个小例子或对文档的引用。
答案 0 :(得分:2)
我解决了这个问题。 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>
&#34; url_scheme_of_your_app&#34; - 文本标识符。前 - &#34; app911&#34 ;;
将您的应用添加到Allowed External Redirect URLs
实施例。 url app911://easyauth.callback
这是example。
答案 1 :(得分: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
我会遇到你提到的同样问题。然后我尝试降级到Microsoft.Azure.Mobile.Client 4.0.0-alpha-001,我可以找到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\monoandroid\Microsoft.WindowsAzure.Mobile.Ext.dll
经过一些试验,我发现以下sdk支持LoginAsync
的扩展方法,如下所示:
C:\Bruce\Thread Handling Projects\Bruce.AndroidApp\packages\Microsoft.Azure.Mobile.Client.4.0.0\lib\monoandroid71
我如何获得&#34; access_token_value&#34;在客户端Android?请帮我。我需要一个小例子或对文档的引用。
从您的旧代码中,我假设您正在使用服务器流认证,通过支持MonoAndroid >= 7.1
的Microsoft.Azure.Mobile.Client 4.0.0使用服务器流,我假设您需要升级你的xamarin.android项目的Android版本。或者您需要降级到4.0.0之前的版本。此外,您可以参考client-managed flow和server-managed flow。
<强>更新强>
将android版本更改为7.1后,我可以使用Microsoft.Azure.Mobile.Client 4.0.0,如下所示:
要升级到Android 7.1,您可以参考here。