I thought this would be useful:
class_name GameJoltApi
var Game_ID: int = 0
var Access_Token: String = "TOKEN_ID"
var Username: String = "USERNAME"
var anchor: Node = Node.new()
func assign_keys(ID: int, Token: String):
Access_Token = Token
Game_ID = ID
return
func set_user_name(name: String):
Username = name
# HTTPRequest node
var http_request: HTTPRequest
func _ready() -> void:
http_request = HTTPRequest.new()
anchor.add_child(http_request)
# Example: submit a score of 123
submit_score(123)
# Submit a score to Game Jolt
func submit_score(score: int) -> void:
var base_url: String = "https://api.gamejolt.com/api/game/v1/scores/add/"
var params: Dictionary = {
"game_id": Game_ID,
"username": Username,
"user_token": Access_Token,
"score": score
}
# Build query string
var query_list: Array = []
for key in params.keys():
query_list.append(key + "=" + str(params[key]))
var full_url: String = base_url + "?" + "&".join(query_list)
# Make the request
http_request.connect("request_completed", Callable(self, "_on_request_completed"))
http_request.request(full_url)
# Handle the response
func _on_request_completed(result: int, response_code: int, headers: Array, body: PackedByteArray) -> void:
var response_text: String = body.get_string_from_utf8()
if response_code == 200:
print("[SUCCESS] Score submitted!")
print("Response:", response_text)
else:
print("[ERROR] Failed to submit score. Code:", response_code)
print("Response:", response_text)