我需要帮助验证使用OAUTH 2的API,使用PHP


I need help authenticating to an API that uses OAUTH 2, using PHP

我在一个使用过程性PHP编码的web应用程序中工作。没有框架,没有MVC,没有OOP。事情就是这样。在这个时间点上,重新编码以使用某种框架是不可行的。对我有利的是,它组织得很好,所以很容易在里面工作。总之,他们想要添加一个销售点系统,并登陆了Kounta (kounta.com)。Kounta有一个RESTful API,返回JSON或XML。

对于编写与API集成的应用程序,我绝对是一个全新的人,而且周围有很多我不太熟悉的术语。

根据我的理解,我需要使用oAuth 2.0对自己进行身份验证,从那里,可以使服务器调用从他们的服务器提取数据。

第一件事是我需要帮助的。

我有我的客户端ID和客户端秘密。我只是不确定如何处理它们,以及如何通过脚本将它们传递到服务器以接收令牌,以便我可以然后进行这些服务器调用。

Kounta API文档可以在这里找到(http://www.kounta.com/documentation/)。

任何人能提供的任何帮助都将非常感激。在这一点上,我甚至不知道从哪里开始。

这是我目前使用的代码。这段代码返回一个错误,要求我向Kounta表明自己的身份。

<?php
  $url = "https://api.kounta.com/v1/companies/5678/orders.json?created_gte=2013‑06‑01";
  $ch = curl_init();
  curl_setopt($ch,CURLOPT_URL,$url);
  curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
  curl_setopt($ch,CURLOPT_CONNECTTIMEOUT, 4);
  $json = curl_exec($ch);
  if(!$json) {
    echo curl_error($ch);
  }
  curl_close($ch);
  print_r(json_decode($json));
?>

我对Kounta不太熟悉,但我最近做了一个项目,需要我根据用户ID从Instagram获取数据。

为此,我使用了CURL。Instagram有一个相当开放的API,甚至还有一些例子。所以这对我来说并不难。

请看下面的例子:

<?php
  function fetchData($url){
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($ch, CURLOPT_TIMEOUT, 20);
    $result = curl_exec($ch);
    curl_close($ch); 
    return $result;
  }
  $result = fetchData("https://api.instagram.com/v1/users/<user>/media/recent/?access_token=<access_token>&count=4");
  $result = json_decode($result);
  foreach ($result->data as $post) {
    echo '<div class="col-sm-3">
    <a href="'.$post->images->standard_resolution->url.'" data-lightbox="instagram" data-title="'.$post->caption->text.' '.implode(' #',$post->tags).'">
    <img src="'.$post->images->thumbnail->url.'" alt="" /></a>
    </div>';
  }
?> 

这做的是简单地连接到instagram API与用户ID和访问令牌内的URL和返回一个JSON数组。

我给你看这个的唯一目的是因为这可能正是你在与Kounta一起前进时需要做的,以某种形式或方式。我没有看过他们的API或其他东西,所以我不能肯定。然而,我非常肯定CURL将是您最好的选择。

我建议你再通读一遍他们的API,看看他们有什么选项,或者甚至看看他们是否提供了任何示例来帮助你开始。

EDIT:你提到它们它们返回JSON和XML。知道这一点很好,因为这很可能意味着您可以使用CURL从他们的数据库获取数据。

如果你有任何问题,请告诉我。