【问题标题】:php library for flickr APIflickr API 的 php 库
【发布时间】:2016-06-22 18:20:01
【问题描述】:

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

我阅读了一些关于如何获取令牌和使用 DPZFlickr 设法获得 oauth_token 和 oauth_verifier 但未能与访问令牌交换的信息......它也未能使用包含的上传将任何照片上传到我的帐户。 php 示例(给我一个“空”错误!)。 在挖掘 DBZ flickr.php 代码后,我在尝试上传到 Flickr 时遇到了这个错误:“oauth_problem=signature_invalid&” 所以我开始搜索如何创建一个有效的签名以最终获得一个有效的访问令牌......并得出结论,如果我要从头开始构建所有东西,这里还有很多工作要做。

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

【问题讨论】:

    标签: flickr phpflickr


    【解决方案1】:

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

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

    我设法通过将 auth.php 中的方法更改为 flickr.photosets.create.. 来使用 DPZFlickr 创建相册。这表明该库正确生成了具有写入权限的访问令牌..

    但是,上传示例一直给我“无效签名”错误.... 我检查了代码。 Flickr.php 在签署请求之前正确取消设置 photo 参数,然后将其添加回来并提交与以下内容完全相同的请求:www.flickr.com/services/api/upload.api.html

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

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

    但是,我在CURL PHP send image 中发现了一条精彩的评论 指出: "CURLOPT_SAFE_UPLOAD 在 5.6.0 中默认为 true...所以你需要在设置 CURLOPT_POSTFIELDS 之前添加 curl_setopt($ch, CURLOPT_SAFE_UPLOAD, false);"

    查看手册: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(这就是该库工作的原因有的有,有的没有)。

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

    就是这样。 (-:

    【讨论】:

    • 啊,为什么我 8 小时前没有找到这个?谢谢人
    • 我无法让它与 DPZFlickr OP 正在使用的风格一起工作。但是,我确实让它与原始的 DPZFlickr 库一起使用。此 SE 的详细信息:stackoverflow.com/questions/54331544/…
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-03-18
    • 2010-11-02
    • 2011-11-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多