java - 使用 QBOVendorService 的 NPE

标签 java intuit-partner-platform

我正在尝试使用 QBOVendorService 查询供应商,但没有成功。 我按如下方式创建服务:

       QBOVendorService vService = QBServiceFactory.getService(context, QBOVendorService.class);

其中上下文是有效的 PlatformSessionContext。我知道平台 session 上下文很好,因为我可以使用它获取有关用户的信息。当我尝试时

           vService.addVendor(context, vendor);

我最终得到一个 NPE,就像我的 vService 为空一样。如果初始化 QBOVendorService 失败,我不应该收到错误吗?由于 intuit 开发者论坛已关闭,是否有一个好地方可以找到更多使用此功能的示例?

最佳答案

我正在分享一个示例代码片段。替换您的 OAuth token 和 relamId。应该可以正常工作。

import java.util.ArrayList;
import java.util.Calendar;
import java.util.Iterator;
import java.util.List;

import com.intuit.ds.qb.QBIdType;
import com.intuit.ds.qb.QBVendor;
import com.intuit.ds.qb.QBVendorQuery;
import com.intuit.ds.qb.QBVendorService;
import com.intuit.ds.qb.QBInvalidContextException;
import com.intuit.ds.qb.QBObjectFactory;
import com.intuit.ds.qb.QBServiceFactory;
import com.intuit.ds.qb.impl.QBRecordCountImpl;
import com.intuit.ds.qb.qbd.QBDRecordCountService;
import com.intuit.ds.qb.qbd.QBDServiceFactory;
import com.intuit.platform.client.PlatformSessionContext;
import com.intuit.platform.client.PlatformServiceType;
import com.intuit.platform.client.security.OAuthCredentials;
import com.intuit.ds.qb.QBSyncStatusRequest;
import com.intuit.ds.qb.QBSyncStatusRequestService;
import com.intuit.ds.qb.QBSyncStatusResponse;
import com.intuit.sb.cdm.NgIdSet;
import com.intuit.sb.cdm.ObjectName;
import org.slf4j.Logger;

// QBD API Docs - https://developer.intuit.com/docs/0025_quickbooksapi/0050_data_services/v2/0500_quickbooks_windows/0600_object_reference/vendor
// QBO API Docs - https://developer.intuit.com/docs/0025_quickbooksapi/0050_data_services/v2/0400_quickbooks_online/vendor
// JavaDocs     - http://developer-static.intuit.com/SDKDocs/QBV2Doc/ipp-java-devkit-2.0.10-SNAPSHOT-javadoc/

public class CodegenStubVendorall {
    final PlatformSessionContext context;

    public CodegenStubVendorall(PlatformSessionContext context) {
        this.context = context;
    }

    public void testAdd() {
        final List<QBVendor> entityList = new ArrayList<QBVendor>();
        try {
            QBVendorService service = QBServiceFactory.getService(context, QBVendorService.class);

            //Your Code 
            //Use Vendor POJO for creating Vendor

            }
        } catch (QBInvalidContextException e) {
            e.printStackTrace();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }


    public static void main(String args[]) {
        PlatformSessionContext context = getPlatformContext();
        CodegenStubVendorall testObj = new CodegenStubVendorall(context);
        testObj.testAdd();
    }

    public static PlatformSessionContext getPlatformContext() {

        String accesstoken = "rplce_your_application_token";
        String accessstokensecret = "rplce_your_application_token";
        String appToken = "rplce_your_application_token";
        String oauth_consumer_key = "rplce_your_application_token";
        String oauth_consumer_secret = "rplce_your_application_token";
        String realmID = "123456";
        String dataSource = "QBO";

        PlatformServiceType serviceType;
        if (dataSource.equalsIgnoreCase("QBO")) {
            serviceType = PlatformServiceType.QBO;
        } else {
            serviceType = PlatformServiceType.QBD;
        }

        final OAuthCredentials oauthcredentials = new OAuthCredentials(
                oauth_consumer_key, oauth_consumer_secret, accesstoken,
                accessstokensecret);

        final PlatformSessionContext context = new PlatformSessionContext(
                oauthcredentials, appToken, serviceType, realmID);

        return context;
    }
}

您可以尝试使用 ApiExplorer 工具来验证您的 OAuth token 并检查创建 Vendor API 端点。

链接 - https://developer.intuit.com/apiexplorer?apiname=V2QBO

请让我知道进展如何。

谢谢

关于java - 使用 QBOVendorService 的 NPE,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17794503/

相关文章:

java - 除非打印输出+ Processbuilder,否则进程不会运行

Java ID3 音频标签库

java - QuickBooks Online Java SDK DataServiceexecuteBatch() 导致 NullPointerException

syntax-error - “Error validating Name:Invalid string.”添加客户时

java - 如何在 JRadioButton 上方垂直对齐文本和图像?

Java - 获取类中属性的值

java - 限制选中的复选框数量

intuit-partner-platform - aggcat php 示例不工作

maven - 缺少适用于 QBO 的 Intuit Java V3 SDK 的父 pom

intuit-partner-platform - Quickbooks Online Hello Word .Net 示例