1

Flickr API を使用しようとして頭を悩ませています... 私の目標は、自分の Web サイトから Flickr アカウントに画像をアップロードしてアルバムを作成できるようにすることです... phpFlickrライブラリを試しましたが、認証されたトークンを取得するには更新が必要なようです。 ..「無効な認証トークン」が表示され続けます。

トークンを取得する方法についていくつか読み、DPZFlickr を使用してoauth_tokenと oauth_verifierを取得できましたが、それをアクセス トークンと交換できませんでした...含まれている upload.php の例を使用して、アカウントに写真をアップロードすることにも失敗しました ( 「空の」エラー!)。DBZ flickr.php コードを掘り下げた後、Flickr にアップロードしようとしたときにこのエラーが発生しました。すべてをゼロから構築しようとすると、ここで行うのはかなりの作業です。

私の質問は次のとおりです。アルバムを正常に作成し、Flickr アカウントに写真をアップロードするために使用できる更新された php ライブラリはありますか? それとも、先に進んで構築してみる必要がありますか?

4

1 に答える 1

3

OK..ついにDPZライブラリで動作するようになりました。

今後の参考のために、私と同じ問題に直面している人は次のとおりです。

auth.php のメソッドを flickr.photosets.create に変更することで、DPZFlickr を使用してアルバムを作成できました。これは、ライブラリが書き込み許可を持つアクセス トークンを正しく生成することを示しています。

ただし、アップロードの例では「無効な署名」エラーが発生し続けました....コードを確認しました。Flickr.php は、リクエストに署名する前に写真パラメータの設定を正しく解除し、それを再度追加してリクエストを送信します。これは、次の URL に示されているとおりです。

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で見つけたすばらしいコメントには、次の ように記載されています。

マニュアルをチェックする: http://au.php.net/manual/en/function.curl-setopt.php それは言う: 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);

それでおしまい。(-:

于 2016-06-24T11:24:02.880 に答える