Hi all!
My app worked for a long time on Mashery and it broke when Etsy switched from Mashery to self-hosted. I tried for a while to get it to work back then and now after a break I'm trying again to get it working again. Still when I attempt to create a listing with a multipart POST, I get a 403 with "API request missing api_key or valid OAuth parameters".
I've tried with and without "private" in the URL (I think this used to be required, but now I can't find any reference to it in the API docs?), I've tried with and without "sbs_modified=1" in the URL query string, I've tried with and without an API key in the URL query string and with and without an API key in the multipart POST params. It seems that when I provide an API key, I get a different error which says that authentication is required, so I have a feeling that providing the API key is redundant and not required for the OAuth protected methods. I'm guessing that my OAuth signature is incorrect but it's not easy to verify that or figure out why it's wrong, so I'm looking for some clues.
POST /v2/listings HTTP/1.1
Content-Length: 2495
content-type: multipart/form-data; boundary=----------ThIs_Is_tHe_bouNdaRY_$
accept-encoding: gzip, deflate
authorization: OAuth realm="", oauth_nonce="98812264", oauth_timestamp="1317015389", oauth_consumer_key="...", oauth_signature_method="HMAC-SHA1", oauth_version="1.0", oauth_token="...", oauth_signature="kAEHIO20QwlBfwLLfaMjLbOvdKU%3D"
user-agent: Python-httplib2/0.7.0 (gzip)
------------ThIs_Is_tHe_bouNdaRY_$
Content-Disposition: form-data; name="description"
This adorable and functional case is handmade by me -- you won't find any dropshipping here!
It measures 4" x 2 3/4" x 1/2". It's perfect for holding all those small items that always disappear, like your driver's license or student i.d. card, credit and debit cards, a small MP3 player and earbuds, business cards, face-blotting tissues, etc. It can also hold up to 8 regular or 100s length cigarettes.
The case is made of durable stainless steel. I insert a high-quality image and then coat the image with a UV-resistant, scratch-proof, practically-indestructible polymer. I'm famous for being rough on my things, and mine continues to look like new after a long time! Even though the case is metal, I've gone through dozens of airport metal detectors and have never set them off!
The stainless steel case will keep your credit card information safe from ID thieves who use radio waves to read the information from your magnetic strip. (Yes, that has really happened!)
Shipping is always free anywhere in the U.S. or Canada. For anywhere else, it's just $1.95 for the first case and 95 cents for each additional.
I'm happy to do custom work -- just send me an alchemy request and I can give you the details!
Any of our i.d. case designs are also available on a smaller pill box. Just send me a convo with the design(s) you're interested in and I'll post them right away!
The case comes bubble-wrapped with a blank funky-retro gift card. I'll be happy to personalize the gift card -- just include a note with your payment.
------------ThIs_Is_tHe_bouNdaRY_$
Content-Disposition: form-data; name="title"
60s Pop Gal Can't Be Faithful ID Card Case Wallet Holds ID, Business Cards, Credit Cards, MP3 Player, Earbuds, Cigarettes Free Shipping
------------ThIs_Is_tHe_bouNdaRY_$
Content-Disposition: form-data; name="price"
12.99
------------ThIs_Is_tHe_bouNdaRY_$
Content-Disposition: form-data; name="tags"
accessories,case,men,card,metal,retro,women
------------ThIs_Is_tHe_bouNdaRY_$
Content-Disposition: form-data; name="materials"
case
------------ThIs_Is_tHe_bouNdaRY_$
Content-Disposition: form-data; name="shipping_template_id"
6509333
------------ThIs_Is_tHe_bouNdaRY_$
Content-Disposition: form-data; name="quantity"
1
------------ThIs_Is_tHe_bouNdaRY_$
Content-Disposition: form-data; name="shop_section_id"
6866915
------------ThIs_Is_tHe_bouNdaRY_$--
HTTP/1.1 400 Bad Request
Date: Mon, 26 Sep 2011 05:36:29 GMT
Server: Apache
X-Error-Detail: API request missing api_key or valid OAuth parameters
X-Etsy-Request-Uuid: DE2mkkVe2V3uCr8sNxLywa0gRTy2
Content-Length: 53
X-Cnection: close
Content-Type: text/plain;charset=UTF-8
API request missing api_key or valid OAuth parameters