我正在尝试在imgur中列出来自单个用户的专辑。据我在 API 中阅读,有关专辑的信息只能使用经过身份验证的 API获取,这是一个非常奇怪的决定,因为您可以使用匿名 API 上传图像和消息,但无法获取列表等公共信息的专辑。
无论如何,看起来 auth API 使用OAuth。我一直在试图找到一种让它工作的方法,但没有运气。一个原因是我的主机不提供官方的 PHP 的 oauth 扩展,所以我需要一个外部库。
你有任何使用 imgur 和 oauth 的例子吗?
有一些不错的纯 PHP OAuth 选项值得一提。为了了解它们的优点和缺点,有必要了解 OAuth 的工作原理。我们来复习。
在这个例子中,Provider 是 Imgur,Consumer 是你的 code,User 是用户。
当我们点击第 9 步时,代码中的 OAuth 对象拥有执行请求所需的一切。关键的关键部分是OAuth 对象必须自己处理 API 请求,以便它可以正确地对通过网络发送的数据进行签名。
有两个不错的选择供您选择,有些不太好。让我们回顾一下好的:
首先是PEAR 的 HTTP_OAuth,它使用HTTP_Request2作为底层 HTTP 库。虽然它工作正常,但 HTTP_OAuth_Consumer_Request 充当请求对象的网关,但不会从它继承。这意味着您不能对它做所有可以对 HTTP_Request2 做的事情。这可能很烦人。
其次,有Zend Framework 的 Zend_Oauth,它使用Zend_Http_Client作为底层 HTTP 库。虽然它是更大的 Zend 框架的一部分,但这两个组件在很大程度上是独立的,并且可以与其他框架很好地工作......或者没有框架。与 PEAR 库不同,Zend_Oauth_Consumer 实际上返回一个派生自 Zend_Http_Client 的类。这并不是说它没有做自己奇怪的事情。它不是要求您在会话中隐藏令牌和机密,而是希望您序列化一个包含令牌和机密的状态令牌对象。它完成了工作,但这很奇怪。
忽略疣,两者都是你的好选择。它们都是在自由开源许可证下发布的,因此将它们与代码捆绑在一起不会有问题。*
在不太好的类别中,有oauth-php。我不在乎在图书馆工作,太多的分心和让我恼火的小事。还有PECL 的 oauth 扩展。虽然它使用 CURL,但不可能从中获取 CURL 句柄来发出您自己的理智请求。您还提到您没有安装它,这就是为什么它属于不太好的类别。
至于与 Imgur 的接口……它只是普通的 JSON。抛开PHP的本机json_encode
,json_decode
你根本不会有问题。API 文档非常好。
*我不是律师,您可能想咨询一位。(这个答案的一部分是从我开始编写的一个不完整
的 Imgur API 库中逐字复制的。不幸的是,我没有实现任何关于专辑的内容,否则我只会链接它。一旦它完成了我需要它做的事情,我停了。对不起。)
我不知道 Imgur。但是关于 oauth api 和代码的一些很好的链接.. oauth 几乎适用于所有服务..
http://oauth.net/core/1.0/ 因为我的声望不到 10,我只能给你发 2 个超链接