gpt4 book ai didi

c# - 在我的 Windows Phone 8.1 应用程序中通过 Facebook 登录时如何检索用户访问 token ?

转载 作者:太空宇宙 更新时间:2023-11-03 15:44:41 24 4
gpt4 key购买 nike

我正在尝试在我的 cordova 应用程序中实现 Facebook 登录。它适用于 iPhone 和 Android,但我无法让它在 Windows Phone 8.1 上运行。

我现在为 Windows Phone 8.1 做的是调用我制作的 cordova 插件,它执行以下操作:

string loginUrl = "fbconnect://authorize" +
"?client_id=CLIENTID" +
"&scope=public_profile,email" +
"&redirect_uri=msft-APPID://authorize";
var uri = new Uri(loginUrl);
var success = await Windows.System.Launcher.LaunchUriAsync(uri);

这会在很短的时间内启动 facebook 应用程序,然后我的应用程序恢复。

facebook 文档说他们恢复我的应用程序的方式与我调用 facebook 应用程序的方式相同,但使用不同的 loginUrl,包含不同的参数。

或者:

msft-{APPID}://authorize/?
access_token={user-access-token}&

或者:

msft-{AppID}://authorize/?
error=access_denied&
error_code=200&
error_description=Permissions%20Error&
error_reason=user_denied

我正在尝试在我的应用恢复时检索该 {user-access-token}error_reason

我知道调用了 Application_Activated (app.xaml.cs) 方法,但传递给它的参数不包含任何这些。我如何获得这些值?

最佳答案

在 Windows Phone 8.1 Silverlight 中,您可以使用 UriMapperBase 处理此问题。这是对 UriMapperBase 的一个很好的介绍,它展示了它是什么以及如何使用它:http://bsubramanyamraju.blogspot.fi/2014/06/windowsphone-8-custom-uri.html

另外,这里是关于如何使用自定义 UriMapperBase 在 Windows Phone Silverlight 应用程序中实现 Facebook 登录的分步教程:http://doli.us/facebook-login-with-windows-phone-8/

更新了更多细节

您的 UriMapperBase 在应用第一次导航发生之前执行。有多种方法可以处理此问题,但一种选择是将静态属性添加到您的 App.xaml.cs:

        public static string AccessToken { get; set; }

然后,在您的自定义 UriMapper 中,解析接收到的数据并将其设置为 AccessToken 属性:

public class AccessTokenParser : UriMapperBase
{
public override void MapUri(Uri uri)
{
var url = uri.ToString();
if (url.Contains("access_token"))
{
App.AccessToken = ParseAccessTokenFromUrl(url); // Your code here
}
return new Uri("/MainPage.xaml", UriKind.Relative);
}
}

现在,在您的 MainPage.xaml.cs 中,您可以覆盖 OnNavigatedTo 方法:

    public partial class MainPage : PhoneApplicationPage
{

protected override void OnNavigatedTo(NavigationEventArgs e)
{
if (string.IsNullOrEmpty(App.AccessToken))
return;

DoThingsWithAccessToken();
}

希望这对您有所帮助。

关于c# - 在我的 Windows Phone 8.1 应用程序中通过 Facebook 登录时如何检索用户访问 token ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28640869/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com