我需要帮助使用PHP对使用OAUTH 2的API进行身份验证

时间:2015-09-04 17:07:40

标签: php api rest curl oauth

我正在使用程序化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));
?>

1 个答案:

答案 0 :(得分:1)

我对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>';
  }
?> 

这样做只需使用URL中的用户ID和访问令牌连接到Instagrams API并返回JSON数组。

我向您展示这一点的唯一目的是因为这可能正是您需要以某种形式或方式与Kounta一起完成的工作。我没有审核他们的API或任何其他内容,所以我无法肯定地说。但是,我确定CURL将是您最好的选择。

我建议你再次完全阅读他们的API,看看他们有什么选择,甚至可以看看他们是否提供了任何帮助你入门的例子。

编辑:您提到他们返回JSON和XML。这很有用,因为这很可能意味着您可以使用CURL从其数据库中获取数据。

如果您有任何疑问,请与我们联系。