【问题标题】:How to Integrate JSON API from website如何从网站集成 JSON API
【发布时间】:2013-08-27 10:09:52
【问题描述】:

我已被分配为我的客户网站集成 API。该 API 由 vision6.com.au 提供。他们的网站上没有太多可用的信息。谁能给我一个例子,它将联系 vision6 数据库并从我们使用 jquery 和 php 开发的网站添加一个联系人。

这是我正在尝试的方式

var newVal = { “身份证”:1, “方法”:“添加用户”, “参数”:[ "APIKEY", "123456", { “用户名”:“用户名_123”, “密码”:“123456abc”, "first_name" : "名字", "last_name" : "姓氏", “电子邮件”:“example@example.com”, “手机”:“0412312312”, “电话”:“56565656”, “传真”:“57575757”, “职位”:“经理”, “is_read_only”:是的, “时区”:“澳大利亚/布里斯班”, “email_user”:是的, “is_confirmed”:真 } ] }; $.ajax({ 网址:'http://www.vision6.com.au/api/jsonrpcserver.php?version=3.0', 类型:'POST', beforeSend: function(){alert('sending');}, 数据:newVal, //数据类型:'json', //数据:JSON.stringify(newVal), //contentType: '应用程序/json;字符集=utf-8', 数据类型:'json', //异步:​​假, 成功:功能(味精){警报(味精); } });

这是我从他们的文档中获取的 developer.vision6.com.au

【问题讨论】:

  • 这是一个编程问题吗?如果是,请尝试以函数签名的形式提供有关您提到的此 API 的信息。然后翻译成api.jquery.com/jQuery.get调用。

标签: json api


【解决方案1】:

对于那些想要使用 Ruby 进行集成的人,我用简单的代码创建了一个要点:

require 'httparty'

url = 'http://www.vision6.com.au/api/jsonrpcserver.php?version=3.0'
api_key = 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'

JSON.parse(HTTParty.post(url, headers: { 'Content-Type' => 'application/json' }, body: JSON.dump({
  'method' => 'getSessionInfo', 'params' => [api_key]
})))

JSON.parse(HTTParty.post(url, headers: { 'Content-Type' => 'application/json' }, body: JSON.dump({
  'method' => 'searchLists', 'params' => [api_key]
})))

list_id = 123456
JSON.parse(HTTParty.post(url, headers: { 'Content-Type' => 'application/json' }, body: JSON.dump({
  'method' => 'addContacts', 'params' => [api_key, list_id, [{ 'First Name' => 'Foo', 'Last Name' => 'Bar', 'Email' => 'foo@bar.com' }]]
})))

【讨论】:

  • 上次我这样做时,有人要求我只包含链接:(
【解决方案2】:

您需要下载一个 jsonRPCClient.php 并将其包含在您的 php 文件中。从我对 Vision6 API 的处理来看,它不是很全面,并且在您开始深入了解它之前没有多大意义。不幸的是,它们对您入门没有多大帮助。

我的代码让你开始

include 'includes/jsonRPCClient.php';    
$list_id = 1234;
$url = "http://www.vision6.com.au/api/jsonrpcserver.php?version=3.0";   
$apikey = 'YOURAPIKEYHERE'
$api = new JsonRpcClient($url);
    $contact = array();
    $contact[] = array(
         'First Name' => "John",
         'Email' => "sample@email.com"      
    );

$returnID = $api->addContacts($apikey, $list_id, $contact);

我发现的最重要的变化是

 $api->addContacts($apikey, $list_id, $contact); 

所有使用 API 的方法都遵循这个结构

 $api ->APIMethod($apikey, $OtherRequiredFields/Arrays);    

【讨论】:

    【解决方案3】:

    我建议遵循他们的文档

    http://developers.vision6.com.au/3.0/guide/getting-started

    文档提到了一个客户端库来访问他们的 JSON-RPC。下载它,创建一个免费帐户并从他们的示例中生成 PHP 代码的工作 sn-p。它似乎还包含许多见解和示例。我只是引用addbatch的PHP代码

    // setup vars
    $list_id01     = 123;
    $list_id02     = 456;
    $message_id    = 111;
    $batch_details = array
    (array
      ('list_id'      => $list_id01,
      'type'         => 'list',       // all Contacts in List 123
      'time'         => 'send,        // populate Batch time of send
      )
    array
      ('list_id'      => $list_id02,
      'type'         => 'contact',     // send to contact_list, next
      'contact_list' => array(2),array(17),array(18),
      'time'         => 'send,        // populate Batch time of send
    ));
    $queue_id = $api->invokeMethod('addBatch', $message_id, $batch_details,
    time() + (24*3600), true);
    

    一旦您生成了一个执行授权请求和简单操作的代码 sn-p,但 的行为符合您的预期,您应该更新关于 SO 的问题。 IE。您应该发布 sn-p 和您获得的结果与您期望获得的结果。这可能真的有助于解决问题。

    我还建议直接联系服务支持。

    PS

    除非您能够以可能对其他用户有用的形式提出问题,否则很难获得您寻求的答案。否则,您的问题可能会被定性为过于本地化

    【讨论】:

      【解决方案4】:
      <?php
      $data =  array(www.mtalkz.com)
      
      ‘dest’ => ‘0000000000’,
      
      ‘msg’=>’This is Test message’,
      
      ‘pass’=>’xyz’,
      
      ‘send’=>’ALERTS’,
      
      ‘uname’=>’ xyz ‘,
      
      ‘wapurl’=>’www.mtalkz.com‘
      
      );
      
      $curl = curl_init();
      
      curl_setopt_array($curl, array(
      
      CURLOPT_URL => “https://mtalkz.com/developer-tools/“,
      
      CURLOPT_RETURNTRANSFER => true,
      
      CURLOPT_ENCODING => “”,
      
      CURLOPT_MAXREDIRS => 10,
      
      CURLOPT_TIMEOUT => 30,
      
      CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
      
      CURLOPT_CUSTOMREQUEST => “POST”,
      
      CURLOPT_POSTFIELDS => $data,
      
      CURLOPT_HTTPHEADER => array(
      
      “cache-control: no-cache”,
      
      “content-type: multipart/form-data”,
      
      ),
      
      ));
      
      $response = curl_exec($curl);
      
      $err = curl_error($curl);
      
      curl_close($curl);
      
      if ($err) {
      
      echo “cURL Error #:” . $err;
      
      } else {
      
      echo $response;
      
      }
      

      【讨论】:

        【解决方案5】:
        <?php
        $data =  array(www.mtalkz.com)
        
        ‘dest’ => ‘0000000000’,
        
        ‘msg’=>’This is Test message’,
        
        ‘pass’=>’xyz’,
        
        ‘send’=>’ALERTS’,
        
        ‘uname’=>’ xyz ‘,
        
        ‘wapurl’=>’www.mtalkz.com‘
        
        );
        
        $curl = curl_init();
        
        curl_setopt_array($curl, array(
        
        CURLOPT_URL => “https://mtalkz.com/developer-tools/“,
        
        CURLOPT_RETURNTRANSFER => true,
        
        CURLOPT_ENCODING => “”,
        
        CURLOPT_MAXREDIRS => 10,
        
        CURLOPT_TIMEOUT => 30,
        
        CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
        
        CURLOPT_CUSTOMREQUEST => “POST”,
        
        CURLOPT_POSTFIELDS => $data,
        
        CURLOPT_HTTPHEADER => array(
        
        “cache-control: no-cache”,
        
        “content-type: multipart/form-data”,
        
        ),
        
        ));
        
        $response = curl_exec($curl);
        
        $err = curl_error($curl);
        
        curl_close($curl);
        
        if ($err) {
        
        echo “cURL Error #:” . $err;
        
        } else {
        
        echo $response;
        
        }
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2021-12-05
          • 1970-01-01
          • 2016-09-29
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多