2013-02-20 9 views

答えて

9

回答済み コミッションジャンクションでREST APIをテストするために書いた小さなスクリプトです。

PHPコード:

<?php 

function ConnectToCJ() 
{ 
    global $sort_order, $sort_by; 

    // 
    // Build REST URI for product search. Refer to 
    // documentation for more request parameters. 
    // 
    $URI = 'https://product-search.api.cj.com/v2/product-search?'. 
     'website-id=<INSERT ID>'. // USE YOUR OWN. 
     '&low-price=1'. 
     '&records-per-page=25'. 
     '&sort-order='. $sort_order . 
     '&sort-by='. $sort_by . 
     '&keywords='. rawurlencode($_GET['keywords']); 

    $context = stream_context_create(
    array(
    'http' => array(
     'method' => 'GET', 
     'header' => 'Authorization: ' . // USE YOUR OWN. 
      '0b5ffdb74cd401e1aade0f69cadca29c834781c0936'. 
      'b0b0836383b4e3e8dd7b406612347c3813bda24f8354dd649'. 
      '6679031d8bc46f0dea1943a747ae0025/0093500ab1417918'. 
      'f621234038b1234e8c4b0b22ea9f9cbc1db37a592247676ae'. 
      'c528388bad7a06c9532c46fba2d0815e81e1234a9b25d9173'. 
      '2f46f93123444dc1' 
     ) 
    )); 

    $response = new SimpleXMLElement(file_get_contents($URI, false, $context)); 
    return $response; 
} 

// A separate function to parse data. 
function FormatCJResponse($data) 
{ 
    global $sort_order; 

    $ProductList = '<table border="0" cellspacing="2" cellpadding="2" style="width:800px; margin: auto 0px">'. 
      '<tr style="font-weight:bold">'. 
      '<td><a href="?keywords='. rawurlencode($_GET['keywords']) .'&sort-by=name&sort-order='. SetOrder('name') .'>Product Name</a></td>'. 
      '<td>Advertiser Name</td>'. 
      '<td><a href="?keywords='. rawurlencode($_GET['keywords']) .'&sort-by=price&sort-order='. SetOrder('price') .'>Price</a></td>'. 
      '<td>Description</td>'. 
      '<td>Image</td>'. 
      '</tr>'; 

    $attributes = $data->products->attributes(); 
    if ($attributes->{'total-matched'} == '0') 
     $ProductList .= '<tr><td colspan="5">No products found ...</td></tr>'; 

    foreach ($data->products[0] as $product) 
    { 
     // Sanitize data. 
     $price = number_format((float)$product->price, 2, '.', ' '); 

     $image = '<img src="ImageHandler.php?fileName='. 
       $product->{'image-url'} .'">'; 

     // Add to list. 
     $ProductList .= '<tr><td colspan="5"> </td></tr>'. 
     '<tr>'. 
     '<td valign="top">'. $product->name .'</td>'. 
     '<td valign="top">'. $product->{'advertiser-name'} .'</td>'. 
     '<td valign="top">'. $price .' '. $product->currency .'</td>'. 
     '<td valign="top">'. $product->description .'</td>'. 
     '<td valign="top">'. $image .'</td>'. 
     '</tr>'; 
    } 

    $ProductList .= '</table>'; 
    return $ProductList; 
} 

// Sorts out individual sorting. 
function SetOrder($param) 
{ 
    global $sort_by, $sort_order; 

    if ($sort_by == $param && $sort_order == 'asc') { 
     $order = 'desc" title="Sort by descending order"'; 
    } else { 
     $order = 'asc" title="Sort by ascending order"'; 
    } 

    return $order; 
} 

if (isset($_GET['keywords'])) { 
    if ($_GET['keywords'] != '') { 

     // Sort order. 
     if (!isset($_GET['sort-order'])) { 
      $sort_order = 'asc'; 
     } else { 
      switch ($_GET['sort-order']) { 
      case 'asc': 
       $sort_order = 'asc'; 
       break; 
      case 'desc': 
       $sort_order = 'desc'; 
       break; 
      default: 
       $sort_order = 'asc'; 
      } 
     } 

     // Sort by 
     if (!isset($_GET['sort-by'])) 
      $sort_by = 'name'; 
     else 
      $sort_by = $_GET['sort-by']; 

     // Connect to CJ and get formatted results. 
     $ProductList = FormatCJResponse(ConnectToCJ()); 
    } 
} 
?> 

だけをチェックして、$ ProductListでコンテンツを印刷:

+1

はい、私が使用しているCJは、一つのウェブサイトをAPI。 –

+1

これはフォームです:

関連する問題