Мое приложение - WPF, написанное на C # в VisualStudio 2017 с использованием Dropbox API v2.
Я пытаюсь получить AccessToken
для Dropbox и следую коду OAuth 2 на сайте разработчика Dropbox: https://github.com/dropbox/dropbox-sdk-dotnet/tree/master/dropbox-sdk-dotnet/Examples/SimpleTest
Моя проблема в том, что я получаю сообщение об ошибке скрипта при загрузке страницы входа в Dropbox. Ошибка:
Строка: 0, символ: 0, ошибка: ошибка сценария, код: 0, URL:
https://cfl.dropboxstatic.com/static/compiled/js/alameda_bundle/alameda_bundle.min-vflHAZfb_.js
Я уверен, что мой redirect Uri
правильный и зарегистрированный, потому что я изменил свой веб-браузер по умолчанию с Edge на Explorer, а затем на Chrome, и каждый раз, когда вход в систему работал один раз (и возвращал токен), но затем бросал один и тот же ошибка. Ошибка скриптинга теперь появляется в любом из моих браузеров. Я проверил настройки безопасности и сценарии включены на всех.
Вот XAML:
<local:DropboxBrowser Grid.Row="0" Grid.Column="0"
AccessToken="{Binding AccessToken, Mode=OneWayToSource, UpdateSourceTrigger=PropertyChanged}"
UserId="{Binding UserId, Mode=OneWayToSource, UpdateSourceTrigger=PropertyChanged}"
Result="{Binding Result, UpdateSourceTrigger=PropertyChanged}" />
И ключевые части моего метода:
private void WebBrowser_Navigating(object sender, NavigatingCancelEventArgs e)
{
if (!e.Uri.ToString().StartsWith(REDIRECT_URI, StringComparison.OrdinalIgnoreCase))
{
return;
}
try
{
OAuth2Response result = DropboxOAuth2Helper.ParseTokenFragment(e.Uri);
if (result.State != _oauth2State)
{
return;
}
AccessToken = result.AccessToken;
UserId = result.Uid;
Result = true;
}
catch (ArgumentException ex)
{
Debug.WriteLine(ex.Message + ex.StackTrace);
}
finally
{
e.Cancel = true;
}
}
Я занимаюсь разработкой с архитектурой MVVM, но сейчас я сократил свой код до прямого примера из примера Dropbox - отсюда и ужасная смесь привязок и кода, но я разберусь с этим, как только получу аутентификация работает.
Кто-нибудь знает, что я тут не так делаю?