ОК. Я новичок в этой библиотеке, но похоже, что вы не можете получить эти значения.Я сделал некоторые изменения в Facebook.dll Специально в классе Facebook.FacebookSignedRequest. Я добавил последние 6 строк кода в этот фрагмент ниже, который взят из конструктора для класса.Нижняя строка создает открытое свойство «Регистрация», а строки над ним помещают данные в поле.
public FacebookSignedRequest(IDictionary<string, object> value)
{
this.UserId = value.ContainsKey("user_id") ? (string)value["user_id"] : null;
this.AccessToken = value.ContainsKey("oauth_token") ? (string)value["oauth_token"] : null;
this.Expires = value.ContainsKey("expires") ? DateTimeConvertor.FromUnixTime(Convert.ToInt64(value["expires"])) : DateTime.MinValue;
this.IssuedAt = value.ContainsKey("issued_at") ? DateTimeConvertor.FromUnixTime(Convert.ToInt64(value["issued_at"])) : DateTime.MinValue;
this.ProfileId = value.ContainsKey("profile_id") ? (string)value["profile_id"] : null;
this.Algorithm = value.ContainsKey("algorithm") ? (string)value["algorithm"] : null;
if (value.ContainsKey("user"))
{
var user = (IDictionary<string, object>)value["user"];
this.User = new FacebookSignedRequestUser
{
Country = value.ContainsKey("country") ? (string)user["country"] : null,
Locale = value.ContainsKey("locale") ? (string)user["locale"] : null,
};
}
if (value.ContainsKey("registration"))
{
this.Registration = (IDictionary<string, object>)value["registration"];
}
}
/// <summary>
/// Gets or sets th key value pairs from the Registration plugin input fields. Accessibile even if user chooses not to use Facebook for registration
/// </summary>
public IDictionary<string, object> Registration { get; set; }
Теперь к любым полям, которые я добавляю в плагин регистрации, я могу обращаться по имени.Надеюсь, это поможет кому-то еще.Не стесняйтесь опубликовать лучшую идею.
FacebookApp app = new FacebookApp();
Authorizer authorizer = new Authorizer(app);
if (authorizer.Authorize())
{
object returnValue;
app.SignedRequest.Registration.TryGetValue("Fovourite_Animal", out returnValue);