Not sure for which platform you've been trying to re-ask declined permissions, probably for Canvas. I can only suggest solution for Android.
First, we need to hack provided AndroidFacebook
and FB
classes. To prevent overriding of our changes with plugin update in the future, we almost don't touch third party files, just make classes partial
:
// AndroidFacebook.cs
namespace Facebook
{
sealed partial class AndroidFacebook : AbstractFacebook, IFacebook
// FB.cs
public sealed partial class FB : ScriptableObject
Now we can extend existing classes with a couple of methods:
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;
}
}
Here is how we can pass scope
and auth_type
:
var parameters = new Dictionary<string, object>
{
{ "scope", "email" },
{ "auth_type", "rerequest" },
};
var apiCallSucceeded = FB.TryLoginWithParametersOnAndroid(parameters, result =>
{
...
});