I am trying to use the ClassMarker API on my website, but I keep getting an apiKeyAuthFail error; the documentation mentions this:
$your_api_key = 'd4tsE7SvEgzAKlJPFrlvAz3oe9uFQnxy';
$your_api_secret = 'keepThisSecret';
$current_unix_timestamp = time();
$signature = md5($your_api_key . $your_api_secret . $current_unix_timestamp);
This is what im doing in python:
def prepare_classmarker_request(apikey, apisecret):
timestamp = str(int(time.time()))
signature = hashlib.md5(f"{apikey}{apisecret}{timestamp}".encode()).hexdigest()
return signature, timestamp
This is an example they have in their documentation:
https://api.classmarker.com/v1.json?api_key=XXXX&signature=XXXX×tamp=XXXX
This is how im trying to consume it:
@app.route('/test-auth', methods=['POST','GET'])
def test_auth():
signature, timestamp = prepare_classmarker_request(API_KEY, API_SECRET)
url = f"https://api.classmarker.com/v1.json?apikey={API_KEY}&signature={signature}×tamp={timestamp}"
response = requests.get(url)
if response.status_code == 200:
tests = response.json()
return jsonify(tests)
else:
return jsonify({
"message": "Failed to authenticate",
"status": response.status_code,
"response": response.json()
})
There are not a lot of examples in their website or at least I dint find many... https://www.classmarker.com/docs/ClassMarker-Integration.pdf
https://www.classmarker.com/online-testing/docs/api/#classmarker-api
What am I trying to accomplish?
I am building a website for the user to create quizzes and have the results delivered instantly: speaking, written (grammar), reading and listening. I am looking for APIs or services that can help me with this to avoid building everything from scratch.
Simple typo; as stated in the doc, the name of the query string parameter is api_key
with an underscore, instead of apikey
(in your code).
You can check it here (highlighted): https://www.classmarker.com/online-testing/docs/api/#groups-links-and-exams:~:text=to%20new%20links-,Parameter,-Type.