С сегодняшнего утра Facebook SDK больше не может войти в систему с помощью приложения Facebook. Когда я вызываю метод FacebookSessionClient.LoginWithApp(), найденный в C# SDK, он открывает Facebook, а затем переходит к открытию веб-фрейма с логином на веб-сайте Facebook. Когда учетные данные заполнены в веб-фрейме, приложение не будет выполнять обратный вызов исходному приложению, и, следовательно, вы больше не сможете войти в Facebook.
Я проверил это на двух устройствах, и оба не работают.
Кто-нибудь еще сталкивался с этой проблемой или это известная проблема с решением?
Это моя RelayCommand, вызывающая метод
public RelayCommand LoginButton
{
get
{
return _loginButton = _loginButton ??
new RelayCommand(() =>
{
var fbSessionClient = new FacebookSessionClient("app_id");
fbSessionClient.LoginWithApp("email,basic_info,user_friends", "secret_string");
});
}
}
Мой обработчик UriMapperBase
class FacebookAppAuthenticationHelper : UriMapperBase
{
public override Uri MapUri(Uri uri)
{
return new LoginViewModel().MapUri(uri);
}
}
Обработчик обратного вызова My Facebook URI
public Uri MapUri(Uri uri)
{
// if URI is a facebook login response, handle the deep link (once per invocation)
if (AppAuthenticationHelper.IsFacebookLoginResponse(uri))
{
FacebookSession session = new FacebookSession();
try
{
session.ParseQueryString(HttpUtility.UrlDecode(uri.ToString()));
// Handle success case
FacebookAuthorized = true;
// do something with the custom state parameter
if (session.State != "secret_string")
{
//nop
}
else
{
// save the token and continue (token is retrieved and used when the app is lauched)
FacebookSettings.AccessToken = session.AccessToken;
FacebookSettings.FacebookId = session.FacebookId;
FacebookSettings.TokenExpires = session.Expires;
}
}
catch (Facebook.FacebookOAuthException)
{
if (!this.facebookLoginHandled)
{
// Handle error case
this.facebookLoginHandled = true;
// return to a different uri
FacebookSettings.FacebookId = null;
FacebookSettings.AccessToken = null;
FacebookSettings.TokenExpires = DateTime.MinValue;
}
}
FacebookSettings.Save();
return new Uri("/View/MainPage.xaml", UriKind.Relative);
}
// by default, navigate to the requested uri
return uri;
}