Я хочу иметь возможность вызывать API Quickbooks для тестового приложения, которое я создал для Intuit Developer. Приложение сделано в Xcode, используя Swift, вот что у меня есть до сих пор:
var request = NSMutableURLRequest(URL: NSURL(string: "https://quickbooks.api.intuit.com/v3/company/1313821405/query?query=SELECT%20*%20FROM%20Customer")!)
request.HTTPMethod = "GET"NSURLConnection.sendAsynchronousRequest(request, queue: NSOperationQueue.mainQueue()) {
(response, data, error) in
println(response)
println(data)
println(error)
if error == nil {
if let HTTPResponse = response as? NSHTTPURLResponse {
let statusCode = HTTPResponse.statusCode
if statusCode == 200 {
println("success")
}
}
}
}
Ошибка говорит о том, что «операция не может быть завершена». Я делаю это в компании Sandbox, это причина, почему? Если бы я ввел реальный идентификатор компании, это сработало бы? Кроме того, как я могу использовать API?
Невозможно сгенерировать токены полностью из вашего мобильного приложения.
Используя consumerKey и consumerToken, вы можете сгенерировать accessToken и accessSecret из OAuthPlayground. https://appcenter.intuit.com/Playground/OAuth/IA PN — После завершения потока C2QB (OAuth) вы должны использовать «Тест API меню приложения». опция, которая покажет вам accessToken и accessSecret.
Получив эти 4 жетона, вы можете делать любые звонки.
Для этого вы должны использовать любой стандартный OAuth lib (swift) вроде —
https://github.com/dongri/OAuthSwift
ПН — Я еще не пробовал (я только нашел его после поиска в сети).
Пост PFB, где я поделился кодом Java, который использовал signPost OAuth lib.
Вы можете преобразовать это в swift (используя OAuthSwift или любую другую подходящую библиотеку).
Как вызвать API (Oauth 1.0)?
Спасибо
https://developer.intuit.com/docs/0100_accounting/0060_authentication_and_authorization
Вы аутентифицировали свой запрос с помощью Oauth 1.0 и получили токен доступа и секретный токен для выполнения вызовов API? У вас должна быть веб-страница с кнопкой «Подключиться к Quickbooks», а затем получить эти токены для компании QBO, к которой вы хотите подключиться. Только тогда вы можете звонить в API.
[РЕДАКТИРОВАТЬ]-ПОЛУЧИТЬ https://oauth.intuit.com/oauth/v1/get_request_token?oauth_callback=oob&oauth_nonce = 34562646-ab97-46e1-9aa7-f814d83ef9d1&oauth_consumer_key = qyprd7I5WvVgWDFnPoiBh1ejZn&oauth_signature_method = HMAC-SHA1&oauth_timestamp = 1392306961&oauth_version = 1,0&oauth_signature = 0EtvSnzsuumeyib2fiEcnSyu8% 3D HTTP / 1.1
Ведущий: oauth.intuit.com
HTTP / 1.1 200 ОК
Дата: четверг, 13 февраля 2014 15:56:03 GMT
Сервер: Apache
Cache-Control: без кеша, без хранилища
Прагма: без кеша
Длина контента: 150
Подключение: закрыть
Тип контента: текст / обычный
oauth_token_secret = dXhHHMS1EfdrQ32UabOMscIRWt5bLJNX3ZKljjBc&oauth_callback_confirmed = верно&oauth_token = qyprdbwXdWrAt0xM2NgkLlJ79yCp4I2SmDg7tahDBPjA6Wti
Получить токен доступа
ПОЛУЧИТЬ https://oauth.intuit.com/oauth/v1/get_access_token?oauth_verifier=b4skra3&oauth_token = qyprde5fvI7WNOQjTKYLDzTVxJ2dLPTgQEQSPlDVGxEy9wZX&oauth_nonce = f20a5a4b-3635-40a8-92cf-697dfdb07b9d&oauth_consumer_key = qyprd7I5WvVgJZUvWDFnPoiBh1ejZn&oauth_signature_method = HMAC-SHA1&oauth_timestamp = 1392397399&oauth_version = 1,0&oauth_signature = gEVHttlM8IBAAkmi1dSNJgkKGsI% 3D HTTP / 1.1
Ведущий: oauth.intuit.com
HTTP / 1.1 200 ОК
Дата: пт, 14 февраля 2014 17:03:20 GMT
Сервер: Apache
Cache-Control: без кеша, без хранилища
Прагма: без кеша
Длина контента: 120
Подключение: закрыть
Тип контента: текст / обычный
oauth_token_secret = 474gtp6xsFzNJ1EhrrjiHrTH96xXieaRLinjPomA&oauth_token = qyprdNIpWn2oYPupMpeH8Byf9Bhun5rPpIZZtTbNsPyFtbT4
Тип контента: текст / обычный
Ведущий: quickbooks.api.intuit.com
Авторизация: OAuth oauth_token = «lvprdBmi45KMPO2FnvYtq6KLFTMM7KG0P0PJO3Sm7F3n7pgq», oauth_nonce = «e5d6e732-f903-4456-9c5f-58103843c3c6», oauth_consumer_key = «qyprd7I5WvVgJZUvWDFnPoiBh1ejZn», oauth_signature_method = «HMAC-SHA1», oauth_timestamp = «1394005668», oauth_version = «1.0», oauth_signature = «J8qgGZRa4loR6HEtdpAudP1nVpw% 3D»
Длина контента: 47
Ожидайте: 100-продолжение
Подключение: Keep-Alive
Выберите * из учетной записи
HTTP / 1.1 200 ОК
Дата: среда, 05 марта 2014 г. 07:47:49 GMT
Сервер: Apache / 2.2.3 (Red Hat)
HeaderQueryTime: 21
ContextInitTime: 12
ЗаголовокDAOTime: 22
Идентификатор ответа: 146f271e-1f23-4842-87ba-ad9fc69fe0a2
Время отклика приложения: 196
intuit_tid: 146f271e-1f23-4842-87ba-ad9fc69fe0a2
Подключение: закрыть
Тип контента: application / xml
Длина содержимого: 36683
<IntuitResponse xmlns="http://schema.intuit.com/finance/v3" time="2014-03- 05T07:47:49.393Z"><QueryResponse maxResults="64" startPosition="1"><Account status="Pending"><Id>QB:9</Id><SyncToken>7</SyncToken><MetaData> <CreateTime>2014-03-03T10:56:45Z</CreateTime><LastUpdatedTime>2014-03- 04T14:44:57Z</LastUpdatedTime></MetaData><Name>Name_updatedc4f1a</Name> <SubAccount>false</SubAccount> <Description>description_updatedfc6b1</Description><Active>true</Active> <Classification>Revenue</Classification><AccountType>Income</AccountType> <AcctNum>49400</AcctNum><CurrentBalance>22654.7</CurrentBalance> <OnlineBankingEnabled>false</OnlineBankingEnabled></Account></QueryResponse> </IntuitResponse>