Pythonを使用してリスティング画像をetsyにアップロードするスクリプトを作成しています。
ただし、実行すると、「画像配列のメタデータは _FILES 配列のようには見えません」というメッセージが返される可能性があります
ところで、私はライブラリhttps://github.com/mcfunley/etsy-pythonを使用しています
私はこのコードを試しました:
product_image = open(filename)
result = etsy.uploadListingImage(listing_id=listing_id, image=product_image)
ただし、「UnicodeDecodeError: 'utf-8' コーデックは位置 0 のバイト 0xff をデコードできません: 無効な開始バイト」というエラー メッセージが返されます。
私は別のものを試しました:
product_image = {filename, open(filename, 'rb'), 'image/jpeg'}
result = etsy.uploadListingImage(listing_id=listing_id, image=product_image)
ただし、「画像配列のメタデータが _FILES 配列のように見えません」というエラー メッセージが返されます。
php のサンプル コード ( https://www.etsy.com/developers/documentation/getting_started/images#section_uploading_images ) がありますが、使用している python ライブラリに合わせるのに苦労しました。
$source_file = dirname(realpath(__FILE__)) ."/$filename";
$url = "https://openapi.etsy.com/v2/listings/".$listing_id."/images";
$params = array('@image' => '@'.$source_file.';type='.$mimetype);
$oauth->fetch($url, $params, OAUTH_HTTP_METHOD_POST);
$json = $oauth->getLastResponse();
したがって、主な問題は、uploadListingImage の画像パラメーターの変数の型または構造だと思います。