У меня проблемы с использованием привязки facebook отсюда (https://github.com/mono/monotouch-bindings/tree/master/facebook), и проблема в том, что функция авторизации (входа) не работает на устройстве. На симуляторе он работает отлично, но из устройства вместо окна входа в webbrowser запускается официальное приложение facebook (установлено на телефоне).Facebook api with monotouch
То же самое происходит с образцом, снабженным связыванием.
Любые идеи, как я могу использовать браузер для входа в систему (если я не удалю официальное приложение facebook, оно нормально работает и на устройстве) вместо приложения facebook?
код я использую:
class SessionDelegate : FBSessionDelegate
{
AppDelegate container;
NSAction onLogin;
public NSAction OnLogin {
get {
return this.onLogin;
}
set {
onLogin = value;
}
}
public SessionDelegate (AppDelegate container)
{
this.container = container;
}
public override void DidNotLogin (bool cancelled)
{
Console.WriteLine("did not login");
//container.SaveAuthorization();
if(OnLogin != null) OnLogin.Invoke();
}
public override void DidLogin()
{
Console.WriteLine("login !");
container.SaveAuthorization();
if(OnLogin != null) OnLogin.Invoke();
}
public override void DidLogout()
{
Console.WriteLine("logout !");
container.ClearAuthorization();
}
}
И:
var sessionDelegate = new SessionDelegate (this);
facebook = new Facebook (LocalSettings.FacebookAppId, sessionDelegate);
var defaults = NSUserDefaults.StandardUserDefaults;
if (defaults ["FBAccessTokenKey"] != null && defaults ["FBExpirationDateKey"] != null)
{
facebook.AccessToken = defaults ["FBAccessTokenKey"] as NSString;
facebook.ExpirationDate = defaults ["FBExpirationDateKey"] as NSDate;
}
и для входа в систему:
facebook.Authorize(new string [] { "email", "publish_stream", "read_friendlists", "user_photos" });
Если бы я должен был догадаться, так будет работать их библиотека. Разве это не логин для вас? – jonathanpeppers
Нет, это не так. И он возвращается в мое приложение, вызывающее функцию «DidNotLogin» из FBSessionDelegate. – Daniel