Xero公共应用程序与C#集成



我想将Xero与C#Windows Service应用程序集成。我找不到简单的代码段将Xero与C#连接起来。在授权用户使用Xero时,我不希望任何用户交互。

我找到了下面的代码,但它将我重定向到Xero登录页面以进行身份验证,然后生成验证代码,我该如何避免并继续进行,因为在Windows Service中,我将没有任何GUI输入验证代码。

using System;
using System.Linq;
using System.Windows.Forms;
using Xero.Api.Core;
using Xero.Api.Example.Applications.Public;
using Xero.Api.Example.TokenStores;
using Xero.Api.Infrastructure.OAuth;
using Xero.Api.Serialization;

namespace XeroIntegrationTest
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
            ConnectXero();
        }
        public void ConnectXero()
        {
            try
            {
                // Public Application Sample
                var user = new ApiUser { Name = Environment.MachineName };
                string consumerKey = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx";
                string consumerSecret = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx";
                var public_app_api = new XeroCoreApi("https://api.xero.com/api.xro/2.0/", new PublicAuthenticator("https://api.xero.com/api.xro/2.0/", "https://api.xero.com/oauth/RequestToken", "oob",
                    new MemoryTokenStore()),
                    new Consumer(consumerKey, consumerSecret), user,
                    new DefaultMapper(), new DefaultMapper());

                var public_contacts = public_app_api.Contacts.Find().ToList();
            } catch (Exception ex)
            {
                MessageBox.Show(ex.Message + ex.StackTrace);
            }
        }
    }
}

但生成oauth_problem = cermission_denied& oauth_problem_advice =%20consumer%20WAS%20DENDIED%20ACCESS%20to%20to%20 to to to this%20 resource

错误。

希望有人会帮助我。

您需要与" privateKeyauthenDicator"方法集成。

这样做:

1.使用以下链接

创建私有/公钥

https://developer.xero.com/documentation/api-guides/create-publicprivate-key

2.创建ConsumerKey和ConsumerSecret

3.包含密钥文件到您的项目文件夹

4.使用下面的代码段以访问Xero

var private_app_api = new XeroCoreApi(_xeroSettings.Value.Url, new PrivateAuthenticator(privatekeyFilePath, privatekeypassword),
                new Consumer(consumerKey,consumerSecret), null,
                new DefaultMapper(), new DefaultMapper());

您需要使用" privateauthenticator"方法集成。您正在使用的方法是公共方法,并使用不同的身份验证过程,不适合Windows服务。

这样做:

  1. 访问Xero开发人员门户
  2. 转到"我的应用程序"部分
  3. 选择"添加应用程序"
  4. 从单选按钮选项中选择"私有"(这很重要)
  5. 生成私人/公钥组合(Google如何做到这一点)
  6. 按照读书文件中的代码示例使用privateauthenticator方法
  7. 建立连接

相关内容

  • 没有找到相关文章

最新更新