ios - Xamarin iOS SDK 中的 LoginManager 不缓存 AccessTokens

标签 ios facebook xamarin

我正在尝试使用 Xamarin native iOS 库向 Facebook 进行身份验证并访问 Graph API。

根据该组件的 4.0.1.1 版本说明(我在任何地方都没有找到任何其他文档)

FBSDKTokenCachingStrategy. No alternative. LoginManager class caches tokens to keychain automatically. You can observe token changes to do manual post processing.



然而,这似乎并没有发生。当我的 iOS 应用程序启动时,我创建 LoginManager 实例并调用 Init。但是在那之后 AccessToken.CurrentAccessToken 仍然为空。只有在我在 LoginManager 上调用 LogInWithReadPermissionsAsync 后,它才会填充数据。

我错过了什么还是一个错误。

这是我的代码。
   public bool IsLoggedIn
    {
        get
        {
            return AccessToken.CurrentAccessToken != null &&
                  AccessToken.CurrentAccessToken.ExpirationDate.ToDateTime() > DateTime.Now;
        }
    }
    public Task<AccessToken> FacebookLoginInternal()
    {
        lock (monitor)
        {
            if (_loginTask == null)
            {
                LoginManager manager = new LoginManager();
                manager.Init();

                if (IsLoggedIn)
                {
                    var ts = new TaskCompletionSource<AccessToken>();
                    ts.SetResult(AccessToken.CurrentAccessToken);
                    _loginTask = ts.Task;
                }
                else
                {
                    var loginResult = manager.LogInWithReadPermissionsAsync(
                        new string[] { "email", "user_friends" });

                    _loginTask = loginResult.ContinueWith(r =>
                    {
                        return r.Result.Token;
                    });
                }
            }

            return _loginTask;
        }

最佳答案

根据 Xamarin 支持的回复(谢谢!)

下面的代码解决了这个问题:

public override bool FinishedLaunching(UIApplication app, NSDictionary options)
    {
        return ApplicationDelegate.SharedInstance.FinishedLaunching(app, options);
    }

关于ios - Xamarin iOS SDK 中的 LoginManager 不缓存 AccessTokens,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30348601/

相关文章:

objective-c - Cocoa-Touch - 如何解析本地 Json 文件

ios - 无法从警报完成 : 弹出导航 Controller

Facebook 转换像素与 "server to server"选项

xamarin.ios - Mvvm 交叉标题文本

iOS StackView 或 CollectionView

android - 用于 Android 和 iOS 应用程序的 WebSockets

ios - 使用 Xcode 的 OpenFire

流和用户详细信息的 Facebook FQL 多查询

Facebook 帐户取消链接或取消授权 Facebook 应用程序并检查 Facebook 应用程序的链接状态

c# - 在 Xamarin 中获取 Android 联系人