API Jooble

by Lucaskazama

HTML

<h2>Empregos Próximos a Você</h2>
<button onclick="getUserLocationAndFetchJobs()">Buscar Empregos</button>
<ul id="jobs-list"></ul>

JavaScript

// Substitua "SUA_CHAVE_DE_API" pela chave da API Jooble
const JOOBLE_API_KEY = "16833310-f04e-4f04-970b-eff54e0cfefc";
const JOOBLE_API_URL = "https://br.jooble.org/api/";

// Função para obter a localização do usuário e buscar o estado
function getUserLocationAndFetchJobs() {
    if (navigator.geolocation) {
        navigator.geolocation.getCurrentPosition(function(position) {
            const latitude = position.coords.latitude;
            const longitude = position.coords.longitude;

            // Chama a função para converter latitude/longitude em um estado
            getStateFromCoordinates(latitude, longitude);
        }, function(error) {
            console.error("Erro ao obter localização:", error);
            // Se não conseguir obter a geolocalização, utilize um valor padrão
            fetchJobs("Sao Paulo");
        });
    } else {
        console.log("Geolocalização não é suportada neste navegador.");
        // Se geolocalização não for suportada, utilize um valor padrão
        fetchJobs("Sao Paulo");
    }
}

// Função para obter o estado a partir das coordenadas
function getStateFromCoordinates(latitude, longitude) {
    const geocodeAPIKey = "77f12372a44349299fdf0519b221f83f";  // Substitua com a chave da sua API de geocodificação (Google Maps, OpenCage, etc.)
    const geocodeAPIUrl = `https://api.opencagedata.com/geocode/v1/json?q=${latitude}+${longitude}&key=${geocodeAPIKey}`;

    fetch(geocodeAPIUrl)
        .then(response => response.json())
        .then(data => {
            if (data.results && data.results.length > 0) {
                const state = data.results[0].components.state; // Obtém o nome do estado
                fetchJobs(state); // Chama a função para buscar empregos no estado obtido
            } else {
                console.error("Estado não encontrado.");
                fetchJobs("Sao Paulo");  // Caso não encontre o estado, use Fortaleza
            }
        })
        .catch(error => {
           ...