2016-09-12 2 views
0

Ich versuche, Googles Beacon Proximity API zu verbrauchen. Ich habe gefolgt folgt sie zu integrieren:Google Proximity Beacon API gibt 403 nicht autorisierten Fehler

1) Signed up on Google Api Console. 
2) Created new Project. 
3) enabled Beacon proximity api and Nearby Api. 
4) Generated Api key from Credentials. 

Danach rufe ich die folgende api:

{ 
    "advertisedId": { 
    "type": "EDDYSTONE", 
    "id": "ABEiM0RVZneImaq7zN3u/w==" 
    }, 
    "status": "ACTIVE", 
    "placeId": "ChIJL_P_CXMEDTkRw0ZdG-0GVvw", 
    "latLng": { 
    "latitude": "71.6693771", 
    "longitude": "-22.1966037" 
    }, 
    "indoorLevel": { 
    "name": "1" 
    }, 
    "expectedStability": "STABLE", 
    "description": "An example beacon.", 
    "properties": { 
    "position": "entryway" 
    } 
} 

mit der follwing url:

https://proximitybeacon.googleapis.com/v1beta1/beacons:register?key=xxxx(my_api_key) 

aber die Antwort sagt:

{ 
    "error": { 
    "code": 403, 
    "message": "Unauthorized.", 
    "status": "PERMISSION_DENIED" 
    } 
} 

was ist das? nur für den Zugriff auf bereits registriert Baken und ihre Eigenschaften, dass ich fehle ..

I also tried to use Beacon tools app but after entering EID and all other credentials..the App crashes(on android), while it is not able to connect to my eddystone on Ios. 
+0

haben Sie verwenden Sie tatsächliche api Schlüssel am Ende der URL? –

+0

ja (ich habe den tatsächlichen Wert verwendet) Ich habe es gerade hier getrimmt..andereweise hätte es einen ungültigen Api_key-Fehler ausgelöst –

Antwort

0

die Lösung gefunden, kann API_KEY verwendet werden, während registrieren und zu aktualisieren, benötigen wir ClientId und Client geheime Schlüssel und Sie können es in OAuth2 registrieren .0 Spielplatz. es funktionierte für mich;)

0

Sie können ein Service-Token nach dem Erstellen eines Konto-Service-Schlüssel auf der Google API-Konsole. Dann erzeugen sie mit diesem Code:

String token = null; 

try{ 
    GoogleCredential credential = GoogleCredential.fromStream(accesKey).createScoped 
        (Collections.singleton("https://www.googleapis.com/auth/userlocation.beacon.registry")); 


    credential.refreshToken(); 
    token = credential.getAccessToken(); 

} catch (FileNotFoundException ex) { 
     Logger.getLogger(BeaconRegisterClass.class.getName()).log(Level.SEVERE, null, ex); 
} catch (IOException ex) { 
     Logger.getLogger(BeaconRegisterClass.class.getName()).log(Level.SEVERE, null, ex); 
} 

es dann auf den Kopf Ihrer Anruf setzen:

key: Authorization value: Bearer (your token here) 

setzen den Körper dieses Aufrufs als beacon.json

Verwandte Themen