用于flickr API的php库

时间:2016-06-22 18:20:01

标签: flickr phpflickr

我正在试图使用Flickr API ... 我的目标是能够从我的网站上传我的Flickr帐户中的图像和创建相册... 我尝试了phpFlickr库,但显然它需要更新以获取经过身份验证的令牌...它一直给我“无效的身份验证令牌”。

我做了一些关于如何获取令牌并使用DPZFlickr设法获取oauth_token& oauth_verifier但未能与访问令牌交换...它也无法使用包含的upload.php示例将任何照片上传到我的帐户(给我一个“空”错误!)。 在挖掘DBZ flickr.php代码后,我设法在尝试上传到Flickr时遇到此错误:“oauth_problem = signature_invalid&” 所以我开始搜索如何创建一个有效的签名以最终获得一个有效的访问令牌......并得出结论,如果我要从头开始构建所有内容,那么完成这项工作是相当有意义的。

所以我的问题是:是否有任何更新的PHP库可用于成功创建相册并将照片上传到我的Flickr帐户?或者我应该继续尝试构建一个?

1 个答案:

答案 0 :(得分:3)

好的..我终于让它与DPZ库一起工作了。

为了将来参考任何遇到与我相同问题的人:

我设法使用DPZFlickr创建一个专辑,方法是将auth.php中的方法更改为flickr.photosets.create ....这表明该库正确生成了具有写权限的访问令牌。

然而,上传示例一直给我"无效签名"错误.... 我查了一下代码。在签署请求之前,Flickr.php正确地取消设置photo参数,然后将其添加回来并提交请求,该请求完全如下所示:www.flickr.com/services/api/upload.api.html

我在https://www.flickr.com/groups/51035612836@N01/discuss/72157650261711318/中发现了一个讨论,该讨论清除了错误实际上并不是签名问题,而是照片'正在发送的参数是问题。只是Flickr不知道如何处理照片参数,因此它会发送签名错误。

那么'错误的照片参数? Flickr API要求图像必须以二进制形式发送... DBZ库,Flickr.php脚本行677,使用php(http://au.php.net/manual/en/function.curl-setopt.php)中的cURL函数为我们做了艰苦的工作。 它将$参数(包括上传的照片)发送到http请求的post字段,该字段应该以二进制格式为我们上传。

然而,我在CURL PHP send image中发现了一个精彩的评论 说: " CURLOPT_SAFE_UPLOAD在5.6.0中默认为true ...所以你需要添加curl_setopt($ ch,CURLOPT_SAFE_UPLOAD,false);在设置CURLOPT_POSTFIELDS"

之前

查看手册:http://au.php.net/manual/en/function.curl-setopt.php 它说: "在PHP 5.5.0中添加,默认值为FALSE。 PHP 5.6.0将默认值更改为TRUE。"

因此,如果您的php版本是5.5.0,那么库将正常工作,而如果使用PHP 5.6.0版本,则需要在Flickr.php中在677之前添加一行,以将CURLOPT_SAFE_UPLOAD更改为false(即' s为什么图书馆与其他人合作而不是其他人。)

要解决此问题...只需在Flickr.php中的第677行之前添加此行: curl_setopt($ curl,CURLOPT_SAFE_UPLOAD,false);

那就是它。 ( - :