Нет дескриптора сеанса для обновления токена в Xero-Partner-App - PullRequest
0 голосов
/ 10 сентября 2018

Ошибка от Xero:

Токен не соответствует ожидаемому токену REQUEST

Похоже, проблема связана с комментарием со справочного сайта Xero?

Эта ошибка также произойдет, если дескриптор сеанса не используется в процесс обновления токена доступа.

Я подтвердил, что не получаю это на объекте возврата следующего:

 public async Task<AccessTokenDto> Authorise(string oauth_token, string oauth_verifier, string org)
 {
             var xeroacessToken = 
                       _authenticator.RetrieveAndStoreAccessToken(_user.Name, 
             oauth_token, oauth_verifier, org);
 }

Я не уверен, как получить дескриптор сеанса и как использовать его в моем сервисном вызове для обновления токена? Согласно примеру, я ожидал этого на своем токене.

oauth_session_handle = ODJHMGEZNGVKMGM1NDA1NZG3ZWIWNJ «Дескриптор сеанса, используемый для обновления токена доступа»

Код, который работает в первый раз с токеном, который был извлечен из базы данных:

        var tokenStore = new MemoryTokenStore();
        tokenStore.Add(xerotoken);

        var api = new RA.Xero.Partner.Core(tokenStore, XeroUser(UserId)), _hostingEnvironment)
        {
            UserAgent = "My Partner App " + input.ConsumerKey,

        };

Я попытался проверить, будет ли работать прямая аутентификация партнера:

        var tokenStore = new MemoryTokenStore();
        tokenStore.Add(xerotoken);
        Settings ApplicationSettings = new Settings();

        X509Certificate2 certificate = RA.Xero.Partner.Core.Certificate(_hostingEnvironment);

        var partnerAuthentication = new RA.Xero.Public.PartnerAuthenticator(
                ApplicationSettings.Uri,
                ApplicationSettings.AuthorizeUri,
                ApplicationSettings.CallBackUri,
                tokenStore,
                certificate
               );

        var consumer = new Consumer(ApplicationSettings.Key, 
         ApplicationSettings.Secret);
        var token = partnerAuthentication.GetToken(consumer, 
         XeroUser(UserId));

Я проверил, что ключи - это ключи партнера в моем приложении, и любые советы или примеры кода были бы хорошими.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...