gpt4 book ai didi

android - 如何使用 Facebook SDK Xamarin Android 登录?

转载 作者:太空宇宙 更新时间:2023-11-03 10:39:07 25 4
gpt4 key购买 nike

我正在尝试使用 Facebook SDK 在 Android 应用程序中登录 Facebook。但是我遇到了 IFacebookCallback 的问题。

protected override void OnCreate (Bundle savedInstanceState)
{
base.OnCreate (savedInstanceState);
FacebookSdk.SdkInitialize (Application.Context);
// Create your application here
SetContentView(Resource.Layout.LoginLayout);

callbackManager = CallbackManagerFactory.Create ();

loginButton = FindViewById<LoginButton> (Resource.Id.btnloginbyfacebook);

LoginManager.Instance.RegisterCallback (callbackManager, new IFacebookCallback<LoginResult> ()
{
}
);

loginButton.SetReadPermissions("user_friends");
loginButton.SetReadPermissions("public_profile");
loginButton.SetReadPermissions("email");
loginButton.SetReadPermissions("user_birthday");
}

我遇到了这个错误:

错误非泛型类型 IFacebookCallback 不能与类型参数一起使用。

最佳答案

IFacebookCallback 是一个接口(interface)。您不能创建接口(interface)的实例。您必须实现该接口(interface),然后传递给 LoginManager.Instance.RegisterCallback (callbackManager, new FacebookCallbackImplementation());

facebook 4.16.1 的实现示例:

class FacebookCallbackImplementation<LoginResult> : Java.Lang.Object, IFacebookCallback where LoginResult : Java.Lang.Object
{
public void OnSuccess(Java.Lang.Object obj){

if (obj != null) {
var loginResult = obj.JavaCast<LoginResult>();
AccessToken accesstoken = loginResult.AccessToken;
}
}

public void OnCancel(){ }

public void OnError(FacebookException fbException){ }
}

作为替代方案,您可以在此处获得实现 IFacebookCallback 的通用方法.


对于高于 4.16.1 的 facebook 版本,根据 documentation检索 AccessToken 时几乎没有变化:

这些是 OnSuccess 中提议的更改:

public void OnSuccess(Java.Lang.Object obj)
{
if (AccessToken.CurrentAccessToken != null)
{
var profile = Profile.CurrentProfile;
}
}

附加说明:有时在 OnSuccess 之后,Profile 仍然是 null 以处理边缘情况,请查看 ProfileTrackerwatch配置文件更改。

关于android - 如何使用 Facebook SDK Xamarin Android 登录?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37771063/

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