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