0

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 の画像パラメーターの変数の型または構造だと思います。

4

1 に答える 1