尝试使用FB.login(" Scope")请求拒绝权限,但它会再次将我重定向到登录页面。登录后,它会提示我"您已经授权APPNAME。" FB.login不支持" auth_type"。
有没有人有解决这个问题的方法?
感谢〜 愿力量与你同在
答案 0 :(得分:0)
不确定您曾尝试重新询问拒绝权限的平台,可能是针对Canvas。我只能为Android推荐解决方案。
首先,我们需要破解提供的AndroidFacebook
和FB
类。为了防止将来通过插件更新覆盖我们的更改,我们几乎不会触及第三方文件,只需创建课程partial
:
// AndroidFacebook.cs
namespace Facebook
{
sealed partial class AndroidFacebook : AbstractFacebook, IFacebook
// FB.cs
public sealed partial class FB : ScriptableObject
现在我们可以使用几种方法扩展现有的类:
using System.Collections.Generic;
namespace Facebook
{
partial class AndroidFacebook
{
public void LoginWithParameters(IDictionary<string, object> parameters, FacebookDelegate callback = null)
{
if (parameters == null)
parameters = new Dictionary<string, object>();
var paramJson = MiniJSON.Json.Serialize(parameters);
AddAuthDelegate(callback);
CallFB("Login", paramJson);
}
}
}
partial class FB
{
public static bool TryLoginWithParametersOnAndroid(IDictionary<string, object> parameters, Facebook.FacebookDelegate callback = null)
{
var androidFacebook = FacebookImpl as Facebook.AndroidFacebook;
if (androidFacebook == null)
return false;
androidFacebook.LoginWithParameters(parameters, callback);
return true;
}
}
以下是我们如何传递scope
和auth_type
:
var parameters = new Dictionary<string, object>
{
{ "scope", "email" },
{ "auth_type", "rerequest" },
};
var apiCallSucceeded = FB.TryLoginWithParametersOnAndroid(parameters, result =>
{
...
});