Используйте php и SimPro API для составления списка клиентов

#php #api

#php #API

Вопрос:

Я вхожу здесь в учетную запись: https://sandbox.simpro.co

В setup / applications я создал новое приложение. Тип доступа Прямой доступ, метод подписи HMAC-SHA1

В файле, на который указывает «Application URI», у меня есть это:

 $headers = array(
    'Host: sandbox.simpro.co',
    'Authorization: OAuth,oauth_version="1.0",
    oauth_nonce="1d0c9d11a944b2439cf867f32d59d21b",
    oauth_timestamp="1355952869",
    oauth_consumer_key="sandbox-simpro-......",
    oauth_signature_method="HMAC-SHA1Access",
    oauth_signature="....."',

'Content-Type: application/json',
'Accept: application/json'

);

$url = 'https://sandbox.simpro.co/api/oauth/access_token.php';

$context = array(
    'http' => array(
        'content' => $content,
        'header' => implode("rn", $headers) . "rn",
        'method' => $method,
        'timeout' => 10.0,
        'ignore_errors'=>false
    )
);

$response = file_get_contents(
    $url, false,
     stream_context_create($context));
if ($response === false){

    var_dump("<hr><pre>Request Failed", array('url'=>$url, 'method'=>$method, 'headers'=>$headers, 'content'=>$content),'</pre>');

}
 

Ничего не работает. Я знаю, что все делаю неправильно, но на https://api.simpro.co / там нет примера PHP. Я просто не понимаю, как собрать все вместе.

Как мне подключиться к SimPro API с помощью php?

Обновить:

Это то, что я получаю в своем скрипте:

 Warning: file_get_contents(https://sandbox.simpro.co/api/oauth/access_token.php) [function.file-get-contents]: failed to open stream: HTTP request failed! HTTP/1.0 501 Not Implemented in /.../index.php on line 64
string(23) "
Request Failed"
array(4) {
  ["url"]=>
  string(52) "https://sandbox.simpro.co/api/oauth/access_token.php"
  ["method"]=>
  string(4) "post"
  ["headers"]=>
  array(4) {
    [0]=>
    string(23) "Host: sandbox.simpro.co"
    [1]=>
    string(318) "Authorization: OAuth,oauth_version="1.0",
        oauth_nonce="1d0c9d11a944b2439cf867f32d59d21b",
        oauth_timestamp="1355952869",
        oauth_consumer_key="sandbox-simpro-.....",
        oauth_signature_method="HMAC-SHA1Access",
        oauth_signature="...........""
    [2]=>
    string(30) "Content-Type: application/json"
    [3]=>
    string(24) "Accept: application/json"
  }
  ["content"]=>
  string(0) ""
}
string(6) "
 

Я понимаю, что я неправильно описываю свою проблему, потому что у меня проблемы с пониманием этого API. Тогда, пожалуйста, дайте мне ссылку на php-скрипт, откуда взята эта часть https://api.simpro.co / используется:

Запросить токен https://buildname.simpro.co/api/oauth/request_token.php

Авторизация https://buildname.simpro.co/oauth/authorize.php

Токен доступа https://buildname.simpro.co/api/oauth/access_token.php

Я просто хочу перечислить клиентов с помощью PHP и SimPro.

Комментарии:

1. «Ничего не работает» не является хорошим описанием проблемы. Вам все равно, что говорить, если $response есть false (и, в таком случае, какие сообщения об ошибках печатаются var_dump() ). Мы даже не можем попробовать сами, потому что это одноразовый код авторизации с отсутствующей подписью.

2. Можете ли вы использовать file_get_contents() для загрузки чего-либо еще (например http://php.net )? Вы включили полное сообщение об ошибках?

Ответ №1:

Возможно, стоит взглянуть на пример кода, который мы предоставляем на GitHub:

https://github.com/simPRO-Software/simpro-api-php

Этот пример PHP включает в себя базовое подключение к SimPro API с использованием OAuth и простой запрос данных.

Пожалуйста, дайте мне знать, если вам нужна дополнительная информация или помощь.

Комментарии:

1. можем ли мы использовать simpro api в .net?