首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何开始将serviceM8 (从REST API )发票导入到Windows应用程序

如何开始将serviceM8 (从REST API )发票导入到Windows应用程序
EN

Stack Overflow用户
提问于 2016-02-16 19:33:35
回答 1查看 200关注 0票数 0

我需要将window应用程序(会计- ERP )与ServiceM8 (具有REST API )集成在一起,请参阅下面的url。我所需要的就是在创建发票时读取ServiceM8上的发票详细信息,并将XML或类似格式的数据下载到windows服务器,以便稍后由另一个应用程序处理。

使用.Net windows应用程序可以做到这一点吗?如果是这样,我该从哪里开始呢?我应该遵循哪些步骤?

下面是ServiceM8应用程序接口的URL。http://developer.servicem8.com/docs/the-basics/

EN

回答 1

Stack Overflow用户

发布于 2016-02-17 10:04:30

假设您只需要从API读取(即,您只进行单向同步),那么您需要做三件重要的事情

  1. 向ServiceM8接口发出HTTP请求
  2. 在该请求中包含正确的身份验证
  3. 解析响应您可以理解的内容

HTTP请求

创建一个System.Net.HTTPWebRequest实例并调用GetResponse()。这里有一个关于如何做到这一点的指南:https://msdn.microsoft.com/en-us/library/456dfw4f(v=vs.110).aspx

代码语言:javascript
复制
WebRequest request = WebRequest.Create("https://api.servicem8.com/api_1.0/vendor.json")
WebResponse response = request.GetResponse();
Stream dataStream = response.GetResponseStream();    
StreamReader reader = new StreamReader(dataStream);
string responseFromServer = reader.ReadToEnd();
reader.Close();
response.Close();

没有身份验证,这只会给你一个401未经授权。

Authentication

ServiceM8接受私有应用程序的HTTP Basic身份验证。如果您正在制作一个公共应用程序(分发给许多客户),您可以使用OAuth2,我不会对此进行介绍。

HTTP基本身份验证只是在发出HTTP请求时包含适当的头的问题。维基的文章在这里https://en.wikipedia.org/wiki/Basic_access_authentication

因此,您需要在调用GetResponse()之前添加头文件。

代码语言:javascript
复制
request.Headers.Add("Authorization", "Basic myauthstring");

其中myauthstring是Base64编码的用户名:密码,如上面的Wikipedia链接所述。我认为可能有一种方法内置在WebRequest类中,而不是手动创建HTTP头,但我已经有一段时间没有使用.NET了,所以您必须查找它。

解析响应

ServiceM8将以JSON格式的数据响应,而不是XML。您可以使用像JSON.NET (https://json.codeplex.com/)这样的库来解释这一点并执行您需要做的事情。

端点

如果要将发票从ServiceM8导入会计系统,则需要查看的端点包括:

作业:发票和作业在ServiceM8中是等效的。一项任务只产生一张发票。您将希望查看status=为“已完成”的作业。

JobMaterials:这些是发票上的行项目

JobContacts:工作的站点和帐单联系人详细信息

这些都记录在http://developer.servicem8.com/docs/rest-api/reference/

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35431470

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档