使用C#连接到ConnectWise API

时间:2017-07-05 07:53:11

标签: c# rest api

我打算使用C#创建一个程序,它将使用来自另一个API的数据更新ConnectWise中的票证。

到目前为止,我想测试GET一些发票。为此我安装了最新的SDK并在Visual Studio(SDK 2017.3)中引用它。

文件声称这应该足够了:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using ConnectWiseDotNetSDK;
using ConnectWiseDotNetSDK.ConnectWise;
using ConnectWiseDotNetSDK.ConnectWise.Client;
using ConnectWiseDotNetSDK.ConnectWise.Client.System.Api;
using ConnectWiseDotNetSDK.ConnectWise.Client.System.Model;

private static List<Invoice> getInvoices()
{
    var client = getApiClient();
    var invoicesApi = new InvoiceApi(client);
    var response = invoicesApi.GetInvoices();
    var invoices = response.GetResult<List<Invoice>>();
    foreach (var invoice in invoices)
    {
        Console.WriteLine(invoice);
    }
    return invoices;
}

(我添加了所有using ....行,文档没有说明需要哪些行)。

然而,这给了我getApiClient() does not exist in this context的错误。我想我必须创建一个函数,它将提供我的身份验证等。因此我已经完成了:

private static getApiClient()
{
    string BaseUri = "https://eu-myconnectwise.net/v4_6_Release/apis/3.0/finance/invoices"
    string ContentType = "application/json";
    string Authstring = "xxxxyyxxxx";
}

这不起作用。我不知道如何在主程序中创建client变量。

有没有人让SDK使用C#工作?

2 个答案:

答案 0 :(得分:1)

您可以使用SoapUI工具(enter link description here)。 此工具可帮助您测试所有不同的WEB界面。

答案 1 :(得分:1)

不幸的是,虽然Connectwise文档正在变得越来越好,但仍然需要做大量的工作才能获得最终结果。

这是一个基于答案底部的ZIP文件的简短示例。

const string cw_app_id = "<YourAppID>";
const string cw_site = "<YourConnectWiseInstance>";
const string cw_companyname = "<YourConnectWiseCompany>";

const string public_key = "<PublicKey>";
const string private_key = "<PrivateKey>";

private static ApiClient GetApiClient()
{
    return new ApiClient(cw_app_id, cw_site, cw_companyname)
               .SetPublicPrivateKey(public_key, private_key);
}

private static List<Invoice> getInvoices()
{
    var client = getApiClient();
    var invoicesApi = new InvoiceApi(client);
    var response = invoicesApi.GetInvoices();
    var invoices = response.GetResult<List<Invoice>>();
    foreach (var invoice in invoices)
    {
        Console.WriteLine(invoice.invoiceNumber);
    }
    return invoices;
}

假设您还没有拥有它们或知道每个部分是什么:

  • 您的应用ID来自:https://developer.connectwise.com/Manage/Cookies
  • 您的Connectwise实例是您用来连接的主机名
  • 贵公司是&#34;公司&#34;登录屏幕上的字段
  • 您的公钥和私钥是在创建API会员(系统 - &gt;会员 - &gt; API会员)并转到&#34; API密钥&#34;新API成员的标签。

在下一页的右侧,有一个下载示例代码的链接。

https://developer.connectwise.com/Manage/SDK

相关问题