codeigniter — интеграция xero api в php для приложений открытого типа

Я хочу интегрировать xero api для публичного применения в php.
Я застрял с авторизацией приложения oauth
У меня есть код загрузки с GitHub https://github.com/XeroAPI/XeroOAuth-PHP (найти пример кода xero api для публичного использования)
Я использую следующий код:

 require('/../lib/XeroOAuth.php');
require('/../_config.php');
$useragent = "Xero-OAuth-PHP Public";
$signatures = array (
'consumer_key' => 'app_consumre_key',
'shared_secret' => 'app_secret_key',
'core_version' => '2.0'
);
$XeroOAuth = new XeroOAuth ( array_merge ( array (
'application_type' => XRO_APP_TYPE,
'oauth_callback' => OAUTH_CALLBACK,
'user_agent' => $useragent
), $signatures ) );
include 'tests.php';

Я передаю следующие данные XML:

$xml = "<Invoices>
<Invoice>
<Type>ACCREC</Type>
<Contact>
<Name>Martin Hudson</Name>
</Contact>
<Date>2013-05-13T00:00:00</Date>
<DueDate>2013-05-20T00:00:00</DueDate>
<LineAmountTypes>Exclusive</LineAmountTypes>
<LineItems>
<LineItem>
<Description>Monthly rental for property at 56a Wilkins Avenue</Description>
<Quantity>4.3400</Quantity>
<UnitAmount>395.00</UnitAmount>
<AccountCode>200</AccountCode>
</LineItem>
</LineItems>
</Invoice>
</Invoices>";
$params = array (
'oauth_callback' => OAUTH_CALLBACK
);
$response1 = $XeroOAuth->request ( 'GET', $XeroOAuth->url ( 'RequestToken', '' ), $params     );
if ($XeroOAuth->response ['code'] == 200)
{
$outhtoken = $XeroOAuth->response ['response'];
$oauth_exp = explode('&',$outhtoken);
$oauth_exp_token = explode('=',$oauth_exp[1]);
$oauth_token = $oauth_exp_token[1];
}

Сначала я являюсь маркером oauth и перехожу к URL-адресу счета-фактуры

$response = $XeroOAuth->request('POST', $XeroOAuth->url('Invoices', 'core'),  array('oauth_token'=>$oauth_token), $xml);

Теперь я получаю 401 error в ответ, несоответствие токена

Какую ошибку я делаю?

14

Решение

Если вы получаете ошибки OAuth с Xero, их Статья OAuth Issues полезно предоставить возможное решение. Тем не менее, «несоответствие токенов» не упоминается — и я не могу найти ссылку на ошибку в сообществе Xero.

Исходя из того, что вы опубликовали, первый вопрос: завершил ли вы процесс OAuth? Есть три основных шага (получить токен запроса, авторизация пользователя, получить токен доступа), и в приведенном выше примере показан только первый шаг. public.php файл, на который вы ссылаетесь, содержит все шаги.

Если процесс OAuth работает гладко, убедитесь, что токен доступа OAuth и секретный ключ переданы вместе с вашим запросом (в вашем примере запроса отображается только токен). Вы можете установить их в объекте XeroOAuth, чтобы окончательный запрос мог выглядеть так

$XeroOAuth->config ['access_token'] = $oauth_token;
$XeroOAuth->config ['access_token_secret'] = $oauth_token_secret;
$XeroOAuth->request('POST', $XeroOAuth->url('Invoices', 'core'),  array(), $xml);

я сделал суть с полным процессом, основанным на XeroOauth-PHP public.php, который демонстрирует как OAuth, так и создание счета.

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]