簡體   English   中英

用於flickr API的php庫

[英]php library for flickr API

我正在試圖使用Flickr API ...我的目標是能夠從我的網站上傳圖像並在我的Flickr帳戶中創建相冊...我嘗試了phpFlickr庫,但顯然它需要更新才能獲得經過身份驗證的令牌。 ..它一直給我“無效的身份驗證令牌”。

我做了一些關於如何獲取令牌和使用DPZFlickr設法獲取oauth_token和oauth_verifier的閱讀,但未能與訪問令牌交換...它也無法使用附帶的upload.php示例將任何照片上傳到我的帳戶(給我一個“空”的錯誤!)。 在挖掘DBZ flickr.php代碼后,我設法在嘗試上傳到Flickr時遇到此錯誤:“oauth_problem = signature_invalid&”所以我開始搜索如何創建有效簽名以最終獲得有效的訪問令牌...並得出結論如果我要從頭開始構建一切,那么在這里完成一些工作是相當多的。

所以我的問題是:是否有任何更新的PHP庫可用於成功創建相冊並將照片上傳到我的Flickr帳戶? 或者我應該繼續嘗試構建一個?

好的..我終於讓它與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/中找到了一個討論,清除了錯誤實際上不是簽名問題,而是發送的'photo'參數是問題。 只是Flickr不知道如何處理photo參數,因此它會發送簽名錯誤。

那么照片參數有什么問題? Flickr API要求圖像必須以二進制形式發送... DBZ庫,Flickr.php腳本行677,為我們使用php中的cURL函數做了很多工作( http://au.php.net/ manual / en / function.curl-setopt.php )。 它將$參數(包括上傳的照片)發送到http請求的post字段,后者應該以二進制格式為我們上傳。

但是,我在CURL PHP中發現的一個精彩評論發送圖像表明:“在5.6.0中CURLOPT_SAFE_UPLOAD默認為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更改了默認值為真。“

因此,如果您的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);

而已。 ( - :

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM