0

我正在尝试将 MYOB .net SDK 集成到我的 Web 应用程序(C#)中。我对 ICompanyFileCredentials 有一些疑问。这是公司文件的登录凭据。在调用此代码中的服务时是否必须提交它?

var service = new ItemOrderService(SessionManager.MyConfiguration, null, SessionManager.MyOAuthKeyService);
var list = service.GetRange(SessionManager.SelectedCompanyFile, filter + pageFilter, SessionManager.MyCredentials, null);

为了确定,我检查了许多服务的重载方法。我看不到允许凭据是可选的重载方法。所以我认为这是强制性的。但是又在这个链接中:

https://apisupport.myob.com/hc/en-us/articles/360000576836-Company-file-authentication

我引用了:

如果您收到 HTTP 403“拒绝访问”响应,则您还没有登录该文件的权限。这是因为一些用户没有将他们的 my.myob 登录名与他们的 per-file 公司文件登录名相关联。您可以提示他们链接他们的登录信息(这是我们帮助指南“打开公司文件”的第 5 步),或者您可以允许您的客户向您的应用程序提供他们的每个文件的用户凭据。

这对我来说有点令人困惑,因为用户是否链接了他们的 my.myob 登录名并不重要,在进行调用时需要凭据(至少在 .net SDK 中是这样),因为它是必需的参数。

那么有人可以确认拨打电话时是否需要凭据吗?如果是,用户如何多次找出他们的公司文件凭据是什么原因,他们不需要在桌面上输入这些凭据?谢谢。

4

1 回答 1

3

访问MYOB SDK时需要提供两组凭证

以下是我自己在 MYOB 项目中的一些示例代码:

1) 访问 MYOB 以获取您有权访问的公司列表,这需要开发人员密钥和秘密以及 oAuth 密钥(这是您的在线帐户)。

ServicePointManager.SecurityProtocol = SecurityProtocolType.Ssl3 | SecurityProtocolType.Tls12 | SecurityProtocolType.Tls11 | SecurityProtocolType.Tls;
            Configuration = new ApiConfiguration(MYOBModule.DeveloperKey, MYOBModule.DeveloperSecret, MYOBModule.MYOBConfirmationUrl);
            var cfService = new CompanyFileService(Configuration, null, Keys);

获得公司列表后,您需要通过文件用户名/密码访问您的个人公司

        Credentials = new CompanyFileCredentials(MYOBModule.CompanyFileUsername, MYOBModule.CompanyFilePassword);

所以是的,您需要两组身份验证。

于 2019-08-19T01:33:42.643 回答