2016-07-22 2 views
0

Впервые, когда я аутентифицирую приложение с помощью Evernote, меня встретил знак evernote на странице, где я смог выполнить авторизацию своего приложения. После отмены доступа я не смог получить доступ к таким функциям, как загрузка заметок или получение списка ноутбуков. Как я могу заставить reauth. процесс повторится? I.E снова отобразите экран входа в систему при запуске приложения. Это в настоящее время код у меня в form.load():Повторно аутентифицировать приложение evernote C#

// Be sure to put your own consumer key and consumer secret here. 
ENSession.SetSharedSessionConsumerKey("your key", "your secret"); 

if (ENSession.SharedSession.IsAuthenticated == false) 
{ 
    ENSession.SharedSession.AuthenticateToEvernote(); 
} 

я не получаю ошибку, когда я бегу, но когда я пытаюсь загрузить записку, я получаю эту ошибку:

Evernote.EDAM.Error.EDAMNotFoundException 

Любая помощь приветствуется, спасибо!

ответ

0

Глядя на source, похоже, что вы можете установить ENSession.SharedSession.IsAuthenticated в false, а затем позвонить ENSession.SharedSession.AuthenticateToEvernote(). Дайте это выстрел и посмотрите, работает ли это?

+0

ENSession.SharedSession.IsAuthenticated получает только вы не можете установить его. Поэтому я не могу использовать это, чтобы исправить эту проблему. – GregJ

+0

ah извините, я не говорю C# :( – akhaku

0

Я не пробовал, но выглядит, как вы можете вызвать

ENSession.SharedSession.PerformPostAuthentication(); 

, а затем проверить

ENSession.SharedSession.IsAuthenticated. 

Если имеет значение ложно, то цикл обратно вызвать

ENSession.SharedSession.AuthenticateToEvernote(); 
+0

Нет, это тоже не сработало. Я по-прежнему получаю ту же ошибку EDAM, что и раньше. – GregJ

0

Я знаю, что это старая нить, но я просто наткнулся на нее, когда искал что-то связанное.

Кажется, что Evernote SDK с использованием ENSession или ENSession advanced не предоставляет способ де-аутентификации. Однако после декомпилирования их DLL я заметил, что на самом деле существует частный метод Unauthenticate. Таким образом, в теории можно использовать отражение, так называют этот метод:

я уверен, что Evernote сделал это частное по причине, так что я был бы осторожен, назвав его, но это необходимо сделать трюк. Я попробовал это в одном из моих тестовых приложений и после вызова Unauthenticate я подтвердил, что ENSession.SharedSession.IsAuthenticated является ложным и вызывает ENSessionAdvanced.SharedSession.AuthenticateToEvernote() действительно запускает веб-браузер с просьбой войти в Evernote.