-1

Transdirect.com 出荷セット送信者 API を Web サイトに実装しようとしていますが、主な原因がわからないというエラーが発生します。

ここにスニペットがあります::

$params = array(
    'session' => $session,
    'postcode' => '2164',
    'name' => 'abc',
    'company'=>'abc',
    'email' => $email ,
    'phone' => '4561237',
    'streetName' => 'abcStreet',
    'streetNumber' => '28',
    'streetType' => 'St',
    'suburb' => 'JHONFEILD',
    'state' => 'NSW',
    'pickupDate' => date( 'Y-m-d' ),
    'pickupTime' => '1-4pm',
    'hydraulicGate' =>'false'
);
$query = http_build_query($params);
$query = 'http://transdirect.com.au/api/v2/booking/sender?'.$query;
$result = json_decode( curl_sender( $query, $session, $email, $arg = 'sender') );

// curl_sender メソッド::

function curl_sender( $url, $session, $email, $arg ) {
    if ( $arg == 'sender' ) {
         $datastring = "postcode=2164&name=Tara Trampolines&company=abc&email=".$email."&phone=0280049375&streetName=Unit 4/28 Victoria St&streetNumber=28&streetType=St&suburb=SMITHFIELD&state=NSW&pickupDate". date( 'Y-m-d' )."&pickupTime=1-4pm&hydraulicGate=false";
   }
   $ch = curl_init();
   curl_setopt($ch, CURLOPT_URL, $url);
   curl_setopt($ch, CURLOPT_POST, 1);
   curl_setopt($ch, CURLOPT_POSTFIELDS, $datastring);
   curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
   $data1 = curl_exec( $ch );
   curl_close( $ch );
   return $data1;
}

私は得ています:

stdClass Object ( 
    [message] => Must be authenticated-please create a session first. 
    [code] => 403
)

API を実装したリンクは次のとおりです: http://transdirect.com.au/api/v2/documentation

各方法を認証する方法を指定してください。事前に感謝します。

4

1 に答える 1

0

API をリクエストする前に、有効なセッションを作成する必要があります。

セッションを作成します。

$credentials = array(
    'email' => 'test@example.com',
    'password' => 'secret'
);

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $credentials);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
curl_close($ch);

var_dump($response);

セッション部分を見てみましょう: http://transdirect.com.au/api/v2/documentation

セッション作成プロセスと実際の API リクエストを混在させることはできません。

  1. セッションを作成
  2. ステップ 1 のこのセッションで API リクエストを作成します。

よくわかりませんが、有効なセッションをパラメーターとして使用する必要はないと思います。ドキュメントには、有効なセッションのみを作成すると書かれています。セッションを追加するためのパラメーターは指定されていないため、作成するだけで十分です。

これはおそらくあなたにとって非常に重要です:

特別な指示などで予約を確認してください。予約が確認されると、セッションはクリアされ、再認証が必要になります。

于 2013-09-19T07:53:15.340 に答える