【问题标题】:Handling authentication in PHP using the Basecamp API使用 Basecamp API 在 PHP 中处理身份验证
【发布时间】:2011-06-12 00:01:08
【问题描述】:

我正在构建一个应用程序,它使用他们的 API 和我构建的一些 PHP 类来导入 Basecamp 数据。那里没有问题。但是,由于应用程序将根据用户输入的凭据通过 Basecamp API 进行身份验证,因此我并不总是知道他们使用的 Basecamp 凭据是否正确。现在我的逻辑只是假设信誉是好的并相应地处理(我的工作完美无缺)。如果不是,则脚本会出错。

我想做的是能够捕获和处理来自 API 的响应,并在用户的凭据因任何原因(错误的凭据、错误的 URL、Basecamp API 访问帐户未启用,等等)我真的不在乎罪魁祸首是什么,我只想告诉他们它失败了​​,他们可以检查一些可能的原因。

根据Basecamp API,“如果请求失败,将返回非200状态码”

我正在使用 CURL 发送凭据并从 API 取回 XML。如果这真的很简单,请原谅我——我是一个不错的 PHP 程序员,但在与 API 接口方面有点菜鸟。

【问题讨论】:

    标签: php api authentication basecamp


    【解决方案1】:

    成功curl_exec后,您可以通过curl_getinfo检索更多信息:

    $http_code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
    

    其中$ch 是您通过curl_init(...) 检索到的“句柄”。

    【讨论】:

    • 谢谢你。我真的不知道要寻找什么,但现在完全有道理。
    • 我也在试验 Basecamp API(只是创建一个简单的项目列表,这样我们就可以在工作流程的其他部分使用内部项目 ID 作为唯一 ID)。你把我引向了正确的方向。
    • @jamesnotjim 谢谢。如果不清楚我所说的“成功 curl_exec”是什么意思,请查看this answer
    • 这是一个很好的例子。通过 PHP 文档和其他来源,我设法得出了类似的结论。我确信我所拥有的可以使用一些抛光剂,但它现在可以使用了。
    【解决方案2】:

    您需要在 curl 调用后查找响应代码,并查看它是 200(根据您发布的内容,这意味着它有效)还是非 200 状态代码,在这种情况下它没有没用。

    如果您可以发布您的 CURL sn-p,我可能会提供更多帮助,但一般来说,这就是您需要做的。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-10-08
      • 1970-01-01
      • 1970-01-01
      • 2015-06-09
      • 1970-01-01
      • 1970-01-01
      • 2018-10-21
      相关资源
      最近更新 更多