2014-09-30 4 views
0

Это моя первая попытка работать с API Quickbooks. Чтобы начать работу с ним, я хотел попробовать несколько вызовов api.Ошибка аутентификации Quickbooks - java sdk quickbooks v3.0

Я уже создал учетную запись на QuickBooks и получили следующие полномочия -

consumerKey 
consumerSecret 
accessToken 
accessTokenSecret 
appToken 
companyId 

Скачано IPP java sdk for QuickBooks v3.0 и из загруженного пакета, я в настоящее время используются следующие опарника -

ipp-v3-java-devkit-2.3.2-jar-with-dependencies.jar 
ipp-java-qbapihelper-1.2.0-jar-with-dependencies.jar 

Здесь это код, который я выполняю.

import com.intuit.ipp.core.Context; 
import com.intuit.ipp.core.ServiceType; 
import com.intuit.ipp.data.Customer; 
import com.intuit.ipp.exception.FMSException; 
import com.intuit.ipp.security.OAuthAuthorizer; 
import com.intuit.ipp.services.DataService; 

public class TestQuickBooks { 
    public static void main(String[] args) 
    throws FMSException 
    { 
    // following credentials are replaced with my original credential 
    // when executing the code 
    String consumerKey = "..."; 
    String consumerSecret = "..."; 
    String accessToken = "..."; 
    String accessTokenSecret = "..."; 
    String appToken = "..."; 
    String companyId = "..."; 

    try { 
     OAuthAuthorizer oauth = new OAuthAuthorizer(consumerKey, 
                consumerSecret, 
                accessToken, 
                accessTokenSecret); 
     Context context = new Context(oauth, 
            appToken, 
            ServiceType.QBO, 
            companyId); 
     DataService service = new DataService(context); 

     Customer customer1 = new Customer(); 
     customer1.setDisplayName("ABCD"); 

     // this is the line which is throwing exception 
     Customer resultCustomer = service.add(customer1); 

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

копируя сообщение об исключении здесь -

com.intuit.ipp.exception.AuthenticationException: ERROR CODE:3200, ERROR MESSAGE:message=ApplicationAuthenticationFailed; errorCode=003200; statusCode=401, ERROR DETAIL:null 

Я проверяю QuickBooks документации, но может, т выяснить, что является причиной этого исключения проверки подлинности. Что касается учетных данных, я дважды проверил его, и они верны.

Я обнаружил, что у quickbooks есть API playground, но вам не повезло.

Пробовал этот апи вызов -

https://appcenter.intuit.com/api/v1/PingSecure 

я предоставил свои полномочия и указанный формат, как JSON и без параметров URL. она возвращается следующее сообщение -

{ 
    "ErrorMessage": "This API requires Authorization.", 
    "ErrorCode": 22, 
    "ServerTime": "/Date(1412166272838)/" 
} 

Моя надежда апи площадка не должна возвращать ошибку аутентификации, поскольку мои полномочия были правильными. Однако единственный способ, которым я могу видеть вызовы api, - это когда я заходил на сайт API explorer

Я не совсем уверен, чего здесь не хватает - не может совершать вызов api из игровой площадки api, а также программно с помощью java sdk.

Любая помощь будет оценена по достоинству.

ответ

0

401 предлагает ошибку аутентификации.

Пожалуйста, обратитесь к этому сообщению, где я упомянул, как вызывать конечные точки QBO V3, используя любой стандартный Restclient.

InvalidTokenException: Unauthorized-401

Если вы видите 401 исключение снова, то, пожалуйста, создать новый набор и маркер доступа accessSecret с помощью OAuthPlayground инструмента и использовать их в Java DevKit.

Благодаря

1

Пожалуйста, добавьте ниже свойства:

Config.setProperty(Config.BASE_URL_QBO,"https://sandboxquickbooks.api.intuit.com/v3/company"); 

до:

DataService service = new DataService(context); 

Это работало для меня.