来自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));
我已经检查了这些键是我应用程序中的伙伴键,并且任何提示或示例代码都很棒。