I am trying to start an eBay API in Python and I can’t find a single answer as to how to get an API key with eBay’s new requirements of "Account Deletion/Closure Notifications." Here’s the link: https://developer.ebay.com/marketplace-account-deletion
Specifically, I am told that "Your Keyset is currently disabled" because I have not completed whatever process is needed for this marketplace account deletion/closure notification.
The problems?
- I have no idea if I need this.
- I have no idea how to actually do this.
Re: 1. It looks like this is for anyone who stores user data. I don’t think that’s me intentionally because I really just want to get sold data and current listings, but is it actually me?
Re: 2. I don’t understand how to validate it and send back the proper responses. I’ve gotten quite good at python but I’m lost here.
eBay forums are completely useless and I see no one with an answer to this. Any help is greatly appreciated.
5
Answers
Re: 1. Same. Here’s my interpretation: In order to use their APIs, you need to provide (and configure) your own API, so they can communicate with you —programatically— and tell you what users have asked to have their accounts/data deleted.
Re: 2. To handle their GET and POST requests, I guess you’ll need to configure a website’s URL as an API endpoint. In Django, I might use something like this (untested) code:
If you find the answer to question number one, please do let me know.
This is how I am dealing with the ebay notification requirement using Python3 cgi. Because bytes are sent, cannot use cgi.FieldStorage()
I’ve been trying @José Matías Arévalo code. It works except "STEP 2" branch – Django returns 403 error. This is because of by default Django uses CSRF middleware (Cross Site Request Forgery protection). To avoid 403 error we need to marks a view as being exempt from the protection as described here https://docs.djangoproject.com/en/dev/ref/csrf/#utilities so add couple strings in code:
And in my case I use url
"https://your-domain.com/your-endpoint/"
with slash symbol "/" at the end of url. Without this slash eBay doesn’t confirm subscription.I am using Flask and this is the code I have used:
Re: 1. You need to comply with eBay’s Marketplace Account Deletion/Closure Notification workflow if you are storing user data into your own database. For example, using eBay’s Buy APIs, you may get access to what users are selling on eBay (for ex. an eBay feed of products). If those eBay sellers decide they want to remove all of their personal data from eBay’s database, eBay is requesting you remove their data from your database as well. If you are NOT storing any eBay user data into your database, you do not need to comply. Here is where you can find more info: https://partnerhelp.ebay.com/helpcenter/s/article/Complying-with-the-eBay-Marketplace-Account-Deletion-Closure-Notification-workflow?language=en_US
Re: 2. To be honest I’ve spent days trying to figure this out in Python (Django), but I have a solution now and am happy to share it with whoever else comes across this issue. Here’s my solution: